diff --git a/entry/src/main/ets/MainAbility/glide/transform/CropTransformation.ets b/entry/src/main/ets/MainAbility/glide/transform/CropTransformation.ets index 0c5691a..e1e0e0a 100644 --- a/entry/src/main/ets/MainAbility/glide/transform/CropTransformation.ets +++ b/entry/src/main/ets/MainAbility/glide/transform/CropTransformation.ets @@ -18,7 +18,6 @@ import {AsyncTransform} from "../transform/AsyncTransform.ets" import {Constants} from "../constants/Constants.ets" import {RequestOption} from "../../glide/RequestOption.ets" import {TransformUtils} from "../transform/TransformUtils.ets" - import image from "@ohos.multimedia.image" export class CropTransformation implements BaseTransform { @@ -68,23 +67,27 @@ export class CropTransformation implements BaseTransform { var scaledWidth = scale * pixelMapWidth; var scaledHeight = scale * pixelMapHeight; - var xx = (this.mWidth - scaledWidth) / 2; - var yy = Math.abs(this.getTop(pixelMapHeight)); + var left = (this.mWidth - scaledWidth) / 2; + var top = Math.abs(this.getTop(pixelMapHeight)); var options = { editable: true, - desiredRegion: { size: { width: this.mWidth, height: this.mHeight }, - x: xx, - y: yy, + desiredRegion: { + size: { + width: scaledWidth > pixelMapWidth ? pixelMapWidth : scaledWidth, + height: scaledHeight > pixelMapHeight ? pixelMapHeight : scaledHeight + }, + x: left < 0 ? 0 : left, + y: top < 0 ? 0 : top, }, } imageSource.createPixelMap(options) .then((data) => { - func("", data); - }) + func("", data); + }) .catch((e) => { - console.log(Constants.PROJECT_TAG + ";error:" + e); - func(e, null); - }) + console.log(Constants.PROJECT_TAG + ";error:" + e); + func(e, null); + }) }) } diff --git a/entry/src/main/ets/MainAbility/glide/utils/CalculatePixelUtils.ets b/entry/src/main/ets/MainAbility/glide/utils/CalculatePixelUtils.ets index af2b244..693b116 100644 --- a/entry/src/main/ets/MainAbility/glide/utils/CalculatePixelUtils.ets +++ b/entry/src/main/ets/MainAbility/glide/utils/CalculatePixelUtils.ets @@ -25,7 +25,7 @@ export namespace CalculatePixelUtils { await p.readPixelsToBuffer(bufferData); let dataArray = new Uint8Array(bufferData); - for (let index = 0; index < dataArray.length; index++) { + for (let index = 0; index < dataArray.length; index += 4) { const r = dataArray[index]; const g = dataArray[index+1]; const b = dataArray[index+2]; diff --git a/entry/src/main/ets/MainAbility/glide/utils/FastBlur.ets b/entry/src/main/ets/MainAbility/glide/utils/FastBlur.ets index 8a19b3a..191f360 100644 --- a/entry/src/main/ets/MainAbility/glide/utils/FastBlur.ets +++ b/entry/src/main/ets/MainAbility/glide/utils/FastBlur.ets @@ -77,7 +77,7 @@ export namespace fastBlur { await bitmap.readPixelsToBuffer(bufferData); let dataArray = new Uint8Array(bufferData); - for (let index = 0; index < dataArray.length; index++) { + for (let index = 0; index < dataArray.length; index+=4) { const r = dataArray[index]; const g = dataArray[index+1]; const b = dataArray[index+2]; diff --git a/entry/src/main/ets/MainAbility/glide/utils/MaskUtils.ets b/entry/src/main/ets/MainAbility/glide/utils/MaskUtils.ets index 6e3f46e..5b2b5bd 100644 --- a/entry/src/main/ets/MainAbility/glide/utils/MaskUtils.ets +++ b/entry/src/main/ets/MainAbility/glide/utils/MaskUtils.ets @@ -68,10 +68,10 @@ export class MaskUtils { let pw_m = 0; for (let index = 0; index < dataArray_m.length; index += 4) { - const r = bufferData_m[index]; - const g = bufferData_m[index+1]; - const b = bufferData_m[index+2]; - const f = bufferData_m[index+3]; + const r = dataArray_m[index]; + const g = dataArray_m[index+1]; + const b = dataArray_m[index+2]; + const f = dataArray_m[index+3]; let entry = new PixelEntry(); entry.a = 0; @@ -81,7 +81,7 @@ export class MaskUtils { entry.f = f; entry.pixel = ColorUtils.rgb(entry.r, entry.g, entry.b); pixEntry.push(entry); - if (entry.r == 0 && entry.g == 0 && entry.r == b) { + if (entry.r == 0 && entry.g == 0 && entry.b == 0) { rgbDataMask[ph_m][pw_m] = rgbData[ph_m][pw_m]; } else { rgbDataMask[ph_m][pw_m] = ColorUtils.rgb(entry.r, entry.g, entry.b); diff --git a/entry/src/main/ets/MainAbility/glide/utils/PixelUtils.ets b/entry/src/main/ets/MainAbility/glide/utils/PixelUtils.ets index 73c8d72..03fd923 100644 --- a/entry/src/main/ets/MainAbility/glide/utils/PixelUtils.ets +++ b/entry/src/main/ets/MainAbility/glide/utils/PixelUtils.ets @@ -45,7 +45,7 @@ export namespace pixelUtils { let pw = 0; - for (let index = 0; index < dataArray.length; index++) { + for (let index = 0; index < dataArray.length; index += 4) { const r = dataArray[index]; const g = dataArray[index+1]; const b = dataArray[index+2];