提交 a06c0d5f 编写于 作者: B Blankj

see 12/17 log

上级 e048975d
...@@ -413,7 +413,7 @@ public final class ImageUtils { ...@@ -413,7 +413,7 @@ public final class ImageUtils {
final boolean recycle) { final boolean recycle) {
if (isEmptyBitmap(src)) return null; if (isEmptyBitmap(src)) return null;
Bitmap ret = Bitmap.createScaledBitmap(src, newWidth, newHeight, true); Bitmap ret = Bitmap.createScaledBitmap(src, newWidth, newHeight, true);
if (recycle && !src.isRecycled()) src.recycle(); if (recycle && !src.isRecycled() && ret != src) src.recycle();
return ret; return ret;
} }
...@@ -446,7 +446,7 @@ public final class ImageUtils { ...@@ -446,7 +446,7 @@ public final class ImageUtils {
Matrix matrix = new Matrix(); Matrix matrix = new Matrix();
matrix.setScale(scaleWidth, scaleHeight); matrix.setScale(scaleWidth, scaleHeight);
Bitmap ret = Bitmap.createBitmap(src, 0, 0, src.getWidth(), src.getHeight(), matrix, true); Bitmap ret = Bitmap.createBitmap(src, 0, 0, src.getWidth(), src.getHeight(), matrix, true);
if (recycle && !src.isRecycled()) src.recycle(); if (recycle && !src.isRecycled() && ret != src) src.recycle();
return ret; return ret;
} }
...@@ -487,7 +487,7 @@ public final class ImageUtils { ...@@ -487,7 +487,7 @@ public final class ImageUtils {
final boolean recycle) { final boolean recycle) {
if (isEmptyBitmap(src)) return null; if (isEmptyBitmap(src)) return null;
Bitmap ret = Bitmap.createBitmap(src, x, y, width, height); Bitmap ret = Bitmap.createBitmap(src, x, y, width, height);
if (recycle && !src.isRecycled()) src.recycle(); if (recycle && !src.isRecycled() && ret != src) src.recycle();
return ret; return ret;
} }
...@@ -558,7 +558,7 @@ public final class ImageUtils { ...@@ -558,7 +558,7 @@ public final class ImageUtils {
Matrix matrix = new Matrix(); Matrix matrix = new Matrix();
matrix.setSkew(kx, ky, px, py); matrix.setSkew(kx, ky, px, py);
Bitmap ret = Bitmap.createBitmap(src, 0, 0, src.getWidth(), src.getHeight(), matrix, true); Bitmap ret = Bitmap.createBitmap(src, 0, 0, src.getWidth(), src.getHeight(), matrix, true);
if (recycle && !src.isRecycled()) src.recycle(); if (recycle && !src.isRecycled() && ret != src) src.recycle();
return ret; return ret;
} }
...@@ -598,7 +598,7 @@ public final class ImageUtils { ...@@ -598,7 +598,7 @@ public final class ImageUtils {
Matrix matrix = new Matrix(); Matrix matrix = new Matrix();
matrix.setRotate(degrees, px, py); matrix.setRotate(degrees, px, py);
Bitmap ret = Bitmap.createBitmap(src, 0, 0, src.getWidth(), src.getHeight(), matrix, true); Bitmap ret = Bitmap.createBitmap(src, 0, 0, src.getWidth(), src.getHeight(), matrix, true);
if (recycle && !src.isRecycled()) src.recycle(); if (recycle && !src.isRecycled() && ret != src) src.recycle();
return ret; return ret;
} }
...@@ -704,7 +704,7 @@ public final class ImageUtils { ...@@ -704,7 +704,7 @@ public final class ImageUtils {
float radius = center - borderSize / 2f; float radius = center - borderSize / 2f;
canvas.drawCircle(width / 2f, height / 2f, radius, paint); canvas.drawCircle(width / 2f, height / 2f, radius, paint);
} }
if (recycle && !src.isRecycled()) src.recycle(); if (recycle && !src.isRecycled() && ret != src) src.recycle();
return ret; return ret;
} }
...@@ -784,7 +784,7 @@ public final class ImageUtils { ...@@ -784,7 +784,7 @@ public final class ImageUtils {
paint.setStrokeCap(Paint.Cap.ROUND); paint.setStrokeCap(Paint.Cap.ROUND);
canvas.drawRoundRect(rectF, radius, radius, paint); canvas.drawRoundRect(rectF, radius, radius, paint);
} }
if (recycle && !src.isRecycled()) src.recycle(); if (recycle && !src.isRecycled() && ret != src) src.recycle();
return ret; return ret;
} }
...@@ -935,7 +935,7 @@ public final class ImageUtils { ...@@ -935,7 +935,7 @@ public final class ImageUtils {
paint.setXfermode(new PorterDuffXfermode(android.graphics.PorterDuff.Mode.DST_IN)); paint.setXfermode(new PorterDuffXfermode(android.graphics.PorterDuff.Mode.DST_IN));
canvas.drawRect(0, srcHeight + REFLECTION_GAP, srcWidth, ret.getHeight(), paint); canvas.drawRect(0, srcHeight + REFLECTION_GAP, srcWidth, ret.getHeight(), paint);
if (!reflectionBitmap.isRecycled()) reflectionBitmap.recycle(); if (!reflectionBitmap.isRecycled()) reflectionBitmap.recycle();
if (recycle && !src.isRecycled()) src.recycle(); if (recycle && !src.isRecycled() && ret != src) src.recycle();
return ret; return ret;
} }
...@@ -987,7 +987,7 @@ public final class ImageUtils { ...@@ -987,7 +987,7 @@ public final class ImageUtils {
Rect bounds = new Rect(); Rect bounds = new Rect();
paint.getTextBounds(content, 0, content.length(), bounds); paint.getTextBounds(content, 0, content.length(), bounds);
canvas.drawText(content, x, y + textSize, paint); canvas.drawText(content, x, y + textSize, paint);
if (recycle && !src.isRecycled()) src.recycle(); if (recycle && !src.isRecycled() && ret != src) src.recycle();
return ret; return ret;
} }
...@@ -1033,7 +1033,7 @@ public final class ImageUtils { ...@@ -1033,7 +1033,7 @@ public final class ImageUtils {
paint.setAlpha(alpha); paint.setAlpha(alpha);
canvas.drawBitmap(watermark, x, y, paint); canvas.drawBitmap(watermark, x, y, paint);
} }
if (recycle && !src.isRecycled()) src.recycle(); if (recycle && !src.isRecycled() && ret != src) src.recycle();
return ret; return ret;
} }
...@@ -1057,7 +1057,7 @@ public final class ImageUtils { ...@@ -1057,7 +1057,7 @@ public final class ImageUtils {
public static Bitmap toAlpha(final Bitmap src, final Boolean recycle) { public static Bitmap toAlpha(final Bitmap src, final Boolean recycle) {
if (isEmptyBitmap(src)) return null; if (isEmptyBitmap(src)) return null;
Bitmap ret = src.extractAlpha(); Bitmap ret = src.extractAlpha();
if (recycle && !src.isRecycled()) src.recycle(); if (recycle && !src.isRecycled() && ret != src) src.recycle();
return ret; return ret;
} }
...@@ -1088,7 +1088,7 @@ public final class ImageUtils { ...@@ -1088,7 +1088,7 @@ public final class ImageUtils {
ColorMatrixColorFilter colorMatrixColorFilter = new ColorMatrixColorFilter(colorMatrix); ColorMatrixColorFilter colorMatrixColorFilter = new ColorMatrixColorFilter(colorMatrix);
paint.setColorFilter(colorMatrixColorFilter); paint.setColorFilter(colorMatrixColorFilter);
canvas.drawBitmap(src, 0, 0, paint); canvas.drawBitmap(src, 0, 0, paint);
if (recycle && !src.isRecycled()) src.recycle(); if (recycle && !src.isRecycled() && ret != src) src.recycle();
return ret; return ret;
} }
...@@ -1171,12 +1171,12 @@ public final class ImageUtils { ...@@ -1171,12 +1171,12 @@ public final class ImageUtils {
scaleBitmap = stackBlur(scaleBitmap, (int) radius, recycle); scaleBitmap = stackBlur(scaleBitmap, (int) radius, recycle);
} }
if (scale == 1 || isReturnScale) { if (scale == 1 || isReturnScale) {
if (recycle && !src.isRecycled()) src.recycle(); if (recycle && !src.isRecycled() && scaleBitmap != src) src.recycle();
return scaleBitmap; return scaleBitmap;
} }
Bitmap ret = Bitmap.createScaledBitmap(scaleBitmap, width, height, true); Bitmap ret = Bitmap.createScaledBitmap(scaleBitmap, width, height, true);
if (!scaleBitmap.isRecycled()) scaleBitmap.recycle(); if (!scaleBitmap.isRecycled()) scaleBitmap.recycle();
if (recycle && !src.isRecycled()) src.recycle(); if (recycle && !src.isRecycled() && ret != src) src.recycle();
return ret; return ret;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册