Skip to content
This repository was archived by the owner on Oct 25, 2023. It is now read-only.

Commit 4b0bd16

Browse files
committed
Fixed libwebpjs memmove problem
1 parent 97f0f80 commit 4b0bd16

6 files changed

Lines changed: 4102 additions & 38 deletions

File tree

‎app/index.html‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,7 @@
6464
<script type="text/javascript" src="vendor/zlib/gunzip.min.js"></script>
6565
<script type="text/javascript" src="vendor/closure/long.js"></script>
6666
<script type="text/javascript" src="vendor/leemon_bigint/bigint.js"></script>
67-
<!--script type="text/javascript" src="vendor/libwebpjs/libwebp-0.2.0.min.js"></script-->
68-
<script type="text/javascript" src="vendor/libwebpjs/libwebp-0.1.13.js"></script>
67+
<script type="text/javascript" src="vendor/libwebpjs/libwebp-0.2.0.js"></script>
6968

7069

7170
<script type="text/javascript" src="js/lib/utils.js"></script>

‎app/js/lib/ng_utils.js‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,19 @@ angular.module('izhukov.utils', [])
205205
return $q.reject(e);
206206
}
207207
}
208+
else if (fileData.file) {
209+
var deferred = $q.defer();
210+
fileData.file(function (blob) {
211+
getByteArray(blob).then(function (result) {
212+
deferred.resolve(result);
213+
}, function (error) {
214+
deferred.reject(error);
215+
})
216+
}, function (error) {
217+
deferred.reject(error);
218+
});
219+
return deferred.promise;
220+
}
208221
return $q.when(fileData);
209222
}
210223

‎app/js/lib/utils.js‎

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -463,30 +463,17 @@ function versionCompare (ver1, ver2) {
463463
image.onerror = function () {
464464
nativeWebpSupport = false;
465465
};
466-
// image.src = 'data:image/webp;base64,UklGRjIAAABXRUJQVlA4ICYAAACyAgCdASoCAAEALmk0mk0iIiIiIgBoSygABc6zbAAA/v56QAAAAA==';
466+
image.src = 'data:image/webp;base64,UklGRjIAAABXRUJQVlA4ICYAAACyAgCdASoCAAEALmk0mk0iIiIiIgBoSygABc6zbAAA/v56QAAAAA==';
467467

468468
var canvas, context;
469469

470-
function convertBinaryToArray (a) {
471-
var b = new Array();
472-
var c = a.length;
473-
for (i = 0; i < c; ++i) b.push(a.charCodeAt(i));
474-
return b
475-
}
476-
477-
478470
function getPngUrlFromData(data) {
479-
console.log(data);
480-
data = convertBinaryToArray(data);
481-
482-
483471
var start = tsNow();
484472

485473
var decoder = new WebPDecoder();
486474

487475
var config = decoder.WebPDecoderConfig;
488-
var buffer = config.output;
489-
// var buffer = config.j;
476+
var buffer = config.j || config.output;
490477
var bitstream = config.input;
491478

492479
if (!decoder.WebPInitDecoderConfig(config)) {
@@ -495,10 +482,11 @@ function versionCompare (ver1, ver2) {
495482
}
496483

497484
// console.log('[webpjs] status code', decoder.VP8StatusCode);
485+
var StatusCode = decoder.VP8StatusCode;
498486

499487
status = decoder.WebPGetFeatures(data, data.length, bitstream);
500-
if (status != 0) {
501-
console.error('[webpjs] status error', status);
488+
if (status != (StatusCode.VP8_STATUS_OK || 0)) {
489+
console.error('[webpjs] status error', status, StatusCode);
502490
}
503491

504492
var mode = decoder.WEBP_CSP_MODE;

‎app/js/services.js‎

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3792,25 +3792,10 @@ angular.module('myApp.services', ['myApp.i18n', 'izhukov.utils'])
37923792
}
37933793

37943794
return FileManager.getByteArray(blob).then(function (bytes) {
3795-
var deferred = $q.defer();
3796-
var freader = new FileReader();
3797-
freader.onload = function (evt) {
3798-
return {
3799-
id: doc.id,
3800-
src: WebpManager.getPngUrlFromData(evt.target.result)
3801-
};
3802-
// WebPDecodeAndDraw(evt.target.result)
3795+
return {
3796+
id: doc.id,
3797+
src: WebpManager.getPngUrlFromData(bytes)
38033798
};
3804-
freader.readAsBinaryString(bytes);
3805-
3806-
return deferred.promise;
3807-
3808-
3809-
3810-
// return {
3811-
// id: doc.id,
3812-
// src: WebpManager.getPngUrlFromData(bytes)
3813-
// };
38143799
});
38153800
});
38163801
}

0 commit comments

Comments
 (0)