2026-07-06 19:54:44 +08:00

6044 lines
130 KiB
Smali

.class public final Lcom/blankj/utilcode/util/ImageUtils;
.super Ljava/lang/Object;
.source "ImageUtils.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/blankj/utilcode/util/ImageUtils$ImageType;
}
.end annotation
# direct methods
.method private constructor <init>()V
.locals 2
.line 68
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 69
new-instance v0, Ljava/lang/UnsupportedOperationException;
const-string v1, "u can\'t instantiate me..."
invoke-direct {v0, v1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method private static addBorder(Landroid/graphics/Bitmap;FIZFZ)Landroid/graphics/Bitmap;
.locals 7
const/16 v0, 0x8
new-array v5, v0, [F
const/4 v0, 0x0
aput p4, v5, v0
const/4 v0, 0x1
aput p4, v5, v0
const/4 v0, 0x2
aput p4, v5, v0
const/4 v0, 0x3
aput p4, v5, v0
const/4 v0, 0x4
aput p4, v5, v0
const/4 v0, 0x5
aput p4, v5, v0
const/4 v0, 0x6
aput p4, v5, v0
const/4 v0, 0x7
aput p4, v5, v0
move-object v1, p0
move v2, p1
move v3, p2
move v4, p3
move v6, p5
.line 998
invoke-static/range {v1 .. v6}, Lcom/blankj/utilcode/util/ImageUtils;->addBorder(Landroid/graphics/Bitmap;FIZ[FZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method private static addBorder(Landroid/graphics/Bitmap;FIZ[FZ)Landroid/graphics/Bitmap;
.locals 4
.line 1018
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_0
const/4 p0, 0x0
return-object p0
:cond_0
const/4 v0, 0x1
if-eqz p5, :cond_1
goto :goto_0
.line 1019
:cond_1
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getConfig()Landroid/graphics/Bitmap$Config;
move-result-object p5
invoke-virtual {p0, p5, v0}, Landroid/graphics/Bitmap;->copy(Landroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap;
move-result-object p0
.line 1020
:goto_0
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result p5
.line 1021
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v1
.line 1022
new-instance v2, Landroid/graphics/Canvas;
invoke-direct {v2, p0}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
.line 1023
new-instance v3, Landroid/graphics/Paint;
invoke-direct {v3, v0}, Landroid/graphics/Paint;-><init>(I)V
.line 1024
invoke-virtual {v3, p2}, Landroid/graphics/Paint;->setColor(I)V
.line 1025
sget-object p2, Landroid/graphics/Paint$Style;->STROKE:Landroid/graphics/Paint$Style;
invoke-virtual {v3, p2}, Landroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V
.line 1026
invoke-virtual {v3, p1}, Landroid/graphics/Paint;->setStrokeWidth(F)V
const/high16 p2, 0x40000000 # 2.0f
if-eqz p3, :cond_2
.line 1028
invoke-static {p5, v1}, Ljava/lang/Math;->min(II)I
move-result p3
int-to-float p3, p3
div-float/2addr p3, p2
div-float/2addr p1, p2
sub-float/2addr p3, p1
int-to-float p1, p5
div-float/2addr p1, p2
int-to-float p4, v1
div-float/2addr p4, p2
.line 1029
invoke-virtual {v2, p1, p4, p3, v3}, Landroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V
goto :goto_1
.line 1031
:cond_2
new-instance p3, Landroid/graphics/RectF;
int-to-float p5, p5
int-to-float v0, v1
const/4 v1, 0x0
invoke-direct {p3, v1, v1, p5, v0}, Landroid/graphics/RectF;-><init>(FFFF)V
div-float/2addr p1, p2
.line 1033
invoke-virtual {p3, p1, p1}, Landroid/graphics/RectF;->inset(FF)V
.line 1034
new-instance p1, Landroid/graphics/Path;
invoke-direct {p1}, Landroid/graphics/Path;-><init>()V
.line 1035
sget-object p2, Landroid/graphics/Path$Direction;->CW:Landroid/graphics/Path$Direction;
invoke-virtual {p1, p3, p4, p2}, Landroid/graphics/Path;->addRoundRect(Landroid/graphics/RectF;[FLandroid/graphics/Path$Direction;)V
.line 1036
invoke-virtual {v2, p1, v3}, Landroid/graphics/Canvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V
:goto_1
return-object p0
.end method
.method public static addCircleBorder(Landroid/graphics/Bitmap;FI)Landroid/graphics/Bitmap;
.locals 6
const/4 v3, 0x1
const/4 v4, 0x0
const/4 v5, 0x0
move-object v0, p0
move v1, p1
move v2, p2
.line 960
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/ImageUtils;->addBorder(Landroid/graphics/Bitmap;FIZFZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static addCircleBorder(Landroid/graphics/Bitmap;FIZ)Landroid/graphics/Bitmap;
.locals 6
const/4 v3, 0x1
const/4 v4, 0x0
move-object v0, p0
move v1, p1
move v2, p2
move v5, p3
.line 976
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/ImageUtils;->addBorder(Landroid/graphics/Bitmap;FIZFZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static addCornerBorder(Landroid/graphics/Bitmap;FIF)Landroid/graphics/Bitmap;
.locals 6
const/4 v3, 0x0
const/4 v5, 0x0
move-object v0, p0
move v1, p1
move v2, p2
move v4, p3
.line 894
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/ImageUtils;->addBorder(Landroid/graphics/Bitmap;FIZFZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static addCornerBorder(Landroid/graphics/Bitmap;FIFZ)Landroid/graphics/Bitmap;
.locals 6
const/4 v3, 0x0
move-object v0, p0
move v1, p1
move v2, p2
move v4, p3
move v5, p4
.line 946
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/ImageUtils;->addBorder(Landroid/graphics/Bitmap;FIZFZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static addCornerBorder(Landroid/graphics/Bitmap;FI[F)Landroid/graphics/Bitmap;
.locals 6
const/4 v3, 0x0
const/4 v5, 0x0
move-object v0, p0
move v1, p1
move v2, p2
move-object v4, p3
.line 910
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/ImageUtils;->addBorder(Landroid/graphics/Bitmap;FIZ[FZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static addCornerBorder(Landroid/graphics/Bitmap;FI[FZ)Landroid/graphics/Bitmap;
.locals 6
const/4 v3, 0x0
move-object v0, p0
move v1, p1
move v2, p2
move-object v4, p3
move v5, p4
.line 928
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/ImageUtils;->addBorder(Landroid/graphics/Bitmap;FIZ[FZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static addImageWatermark(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;III)Landroid/graphics/Bitmap;
.locals 6
const/4 v5, 0x0
move-object v0, p0
move-object v1, p1
move v2, p2
move v3, p3
move v4, p4
.line 1156
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/ImageUtils;->addImageWatermark(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;IIIZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static addImageWatermark(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;IIIZ)Landroid/graphics/Bitmap;
.locals 3
.line 1176
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_0
const/4 p0, 0x0
return-object p0
.line 1177
:cond_0
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getConfig()Landroid/graphics/Bitmap$Config;
move-result-object v0
const/4 v1, 0x1
invoke-virtual {p0, v0, v1}, Landroid/graphics/Bitmap;->copy(Landroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap;
move-result-object v0
.line 1178
invoke-static {p1}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v2
if-nez v2, :cond_1
.line 1179
new-instance v2, Landroid/graphics/Paint;
invoke-direct {v2, v1}, Landroid/graphics/Paint;-><init>(I)V
.line 1180
new-instance v1, Landroid/graphics/Canvas;
invoke-direct {v1, v0}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
.line 1181
invoke-virtual {v2, p4}, Landroid/graphics/Paint;->setAlpha(I)V
int-to-float p2, p2
int-to-float p3, p3
.line 1182
invoke-virtual {v1, p1, p2, p3, v2}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V
:cond_1
if-eqz p5, :cond_2
.line 1184
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result p1
if-nez p1, :cond_2
if-eq v0, p0, :cond_2
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
:cond_2
return-object v0
.end method
.method public static addReflection(Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap;
.locals 1
const/4 v0, 0x0
.line 1049
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/ImageUtils;->addReflection(Landroid/graphics/Bitmap;IZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static addReflection(Landroid/graphics/Bitmap;IZ)Landroid/graphics/Bitmap;
.locals 22
move-object/from16 v7, p0
.line 1063
invoke-static/range {p0 .. p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
const/4 v8, 0x0
if-eqz v0, :cond_0
return-object v8
.line 1065
:cond_0
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v9
.line 1066
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v10
.line 1067
new-instance v5, Landroid/graphics/Matrix;
invoke-direct {v5}, Landroid/graphics/Matrix;-><init>()V
const/high16 v0, 0x3f800000 # 1.0f
const/high16 v1, -0x40800000 # -1.0f
.line 1068
invoke-virtual {v5, v0, v1}, Landroid/graphics/Matrix;->preScale(FF)Z
const/4 v1, 0x0
sub-int v2, v10, p1
const/4 v6, 0x0
move-object/from16 v0, p0
move v3, v9
move/from16 v4, p1
.line 1069
invoke-static/range {v0 .. v6}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap;
move-result-object v0
add-int v1, v10, p1
.line 1071
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getConfig()Landroid/graphics/Bitmap$Config;
move-result-object v2
invoke-static {v9, v1, v2}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v1
.line 1072
new-instance v11, Landroid/graphics/Canvas;
invoke-direct {v11, v1}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
const/4 v2, 0x0
.line 1073
invoke-virtual {v11, v7, v2, v2, v8}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V
add-int/lit8 v3, v10, 0x0
int-to-float v13, v3
.line 1074
invoke-virtual {v11, v0, v2, v13, v8}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V
.line 1075
new-instance v2, Landroid/graphics/Paint;
const/4 v3, 0x1
invoke-direct {v2, v3}, Landroid/graphics/Paint;-><init>(I)V
.line 1076
new-instance v3, Landroid/graphics/LinearGradient;
const/4 v15, 0x0
int-to-float v4, v10
const/16 v17, 0x0
.line 1078
invoke-virtual {v1}, Landroid/graphics/Bitmap;->getHeight()I
move-result v5
add-int/lit8 v5, v5, 0x0
int-to-float v5, v5
const v19, 0x70ffffff
const v20, 0xffffff
sget-object v21, Landroid/graphics/Shader$TileMode;->MIRROR:Landroid/graphics/Shader$TileMode;
move-object v14, v3
move/from16 v16, v4
move/from16 v18, v5
invoke-direct/range {v14 .. v21}, Landroid/graphics/LinearGradient;-><init>(FFFFIILandroid/graphics/Shader$TileMode;)V
.line 1082
invoke-virtual {v2, v3}, Landroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader;
.line 1083
new-instance v3, Landroid/graphics/PorterDuffXfermode;
sget-object v4, Landroid/graphics/PorterDuff$Mode;->DST_IN:Landroid/graphics/PorterDuff$Mode;
invoke-direct {v3, v4}, Landroid/graphics/PorterDuffXfermode;-><init>(Landroid/graphics/PorterDuff$Mode;)V
invoke-virtual {v2, v3}, Landroid/graphics/Paint;->setXfermode(Landroid/graphics/Xfermode;)Landroid/graphics/Xfermode;
const/4 v12, 0x0
int-to-float v14, v9
.line 1084
invoke-virtual {v1}, Landroid/graphics/Bitmap;->getHeight()I
move-result v3
int-to-float v15, v3
move-object/from16 v16, v2
invoke-virtual/range {v11 .. v16}, Landroid/graphics/Canvas;->drawRect(FFFFLandroid/graphics/Paint;)V
.line 1085
invoke-virtual {v0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v2
if-nez v2, :cond_1
invoke-virtual {v0}, Landroid/graphics/Bitmap;->recycle()V
:cond_1
if-eqz p2, :cond_2
.line 1086
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v0
if-nez v0, :cond_2
if-eq v1, v7, :cond_2
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->recycle()V
:cond_2
return-object v1
.end method
.method public static addTextWatermark(Landroid/graphics/Bitmap;Ljava/lang/String;FIFFZ)Landroid/graphics/Bitmap;
.locals 5
.line 1129
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-nez v0, :cond_2
if-nez p1, :cond_0
goto :goto_0
.line 1130
:cond_0
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getConfig()Landroid/graphics/Bitmap$Config;
move-result-object v0
const/4 v1, 0x1
invoke-virtual {p0, v0, v1}, Landroid/graphics/Bitmap;->copy(Landroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap;
move-result-object v0
.line 1131
new-instance v2, Landroid/graphics/Paint;
invoke-direct {v2, v1}, Landroid/graphics/Paint;-><init>(I)V
.line 1132
new-instance v1, Landroid/graphics/Canvas;
invoke-direct {v1, v0}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
.line 1133
invoke-virtual {v2, p3}, Landroid/graphics/Paint;->setColor(I)V
.line 1134
invoke-virtual {v2, p2}, Landroid/graphics/Paint;->setTextSize(F)V
.line 1135
new-instance p3, Landroid/graphics/Rect;
invoke-direct {p3}, Landroid/graphics/Rect;-><init>()V
const/4 v3, 0x0
.line 1136
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v4
invoke-virtual {v2, p1, v3, v4, p3}, Landroid/graphics/Paint;->getTextBounds(Ljava/lang/String;IILandroid/graphics/Rect;)V
add-float/2addr p5, p2
.line 1137
invoke-virtual {v1, p1, p4, p5, v2}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
if-eqz p6, :cond_1
.line 1138
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result p1
if-nez p1, :cond_1
if-eq v0, p0, :cond_1
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
:cond_1
return-object v0
:cond_2
:goto_0
const/4 p0, 0x0
return-object p0
.end method
.method public static addTextWatermark(Landroid/graphics/Bitmap;Ljava/lang/String;IIFF)Landroid/graphics/Bitmap;
.locals 7
int-to-float v2, p2
const/4 v6, 0x0
move-object v0, p0
move-object v1, p1
move v3, p3
move v4, p4
move v5, p5
.line 1107
invoke-static/range {v0 .. v6}, Lcom/blankj/utilcode/util/ImageUtils;->addTextWatermark(Landroid/graphics/Bitmap;Ljava/lang/String;FIFFZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static bitmap2Bytes(Landroid/graphics/Bitmap;)[B
.locals 2
.line 79
sget-object v0, Landroid/graphics/Bitmap$CompressFormat;->PNG:Landroid/graphics/Bitmap$CompressFormat;
const/16 v1, 0x64
invoke-static {p0, v0, v1}, Lcom/blankj/utilcode/util/ImageUtils;->bitmap2Bytes(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap$CompressFormat;I)[B
move-result-object p0
return-object p0
.end method
.method public static bitmap2Bytes(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap$CompressFormat;I)[B
.locals 1
const-string v0, "Argument \'format\' of type CompressFormat (#1 out of 3, zero-based) is marked by @android.support.annotation.NonNull but got null for it"
.line 90
invoke-static {p1, v0}, Ljava/util/Objects;->requireNonNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
if-nez p0, :cond_0
const/4 p0, 0x0
return-object p0
.line 92
:cond_0
new-instance v0, Ljava/io/ByteArrayOutputStream;
invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 93
invoke-virtual {p0, p1, p2, v0}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
.line 94
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object p0
return-object p0
.end method
.method public static bitmap2Drawable(Landroid/graphics/Bitmap;)Landroid/graphics/drawable/Drawable;
.locals 2
if-nez p0, :cond_0
const/4 p0, 0x0
goto :goto_0
.line 149
:cond_0
new-instance v0, Landroid/graphics/drawable/BitmapDrawable;
invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application;
move-result-object v1
invoke-virtual {v1}, Landroid/app/Application;->getResources()Landroid/content/res/Resources;
move-result-object v1
invoke-direct {v0, v1, p0}, Landroid/graphics/drawable/BitmapDrawable;-><init>(Landroid/content/res/Resources;Landroid/graphics/Bitmap;)V
move-object p0, v0
:goto_0
return-object p0
.end method
.method public static bytes2Bitmap([B)Landroid/graphics/Bitmap;
.locals 2
if-eqz p0, :cond_1
.line 104
array-length v0, p0
if-nez v0, :cond_0
goto :goto_0
:cond_0
const/4 v0, 0x0
array-length v1, p0
.line 106
invoke-static {p0, v0, v1}, Landroid/graphics/BitmapFactory;->decodeByteArray([BII)Landroid/graphics/Bitmap;
move-result-object p0
goto :goto_1
:cond_1
:goto_0
const/4 p0, 0x0
:goto_1
return-object p0
.end method
.method public static bytes2Drawable([B)Landroid/graphics/drawable/Drawable;
.locals 0
.line 180
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->bytes2Bitmap([B)Landroid/graphics/Bitmap;
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->bitmap2Drawable(Landroid/graphics/Bitmap;)Landroid/graphics/drawable/Drawable;
move-result-object p0
return-object p0
.end method
.method public static calculateInSampleSize(Landroid/graphics/BitmapFactory$Options;II)I
.locals 2
.line 2335
iget v0, p0, Landroid/graphics/BitmapFactory$Options;->outHeight:I
.line 2336
iget p0, p0, Landroid/graphics/BitmapFactory$Options;->outWidth:I
const/4 v1, 0x1
:goto_0
if-gt v0, p2, :cond_1
if-le p0, p1, :cond_0
goto :goto_1
:cond_0
return v1
:cond_1
:goto_1
shr-int/lit8 v0, v0, 0x1
shr-int/lit8 p0, p0, 0x1
shl-int/lit8 v1, v1, 0x1
goto :goto_0
.end method
.method public static clip(Landroid/graphics/Bitmap;IIII)Landroid/graphics/Bitmap;
.locals 6
const/4 v5, 0x0
move-object v0, p0
move v1, p1
move v2, p2
move v3, p3
move v4, p4
.line 519
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/ImageUtils;->clip(Landroid/graphics/Bitmap;IIIIZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static clip(Landroid/graphics/Bitmap;IIIIZ)Landroid/graphics/Bitmap;
.locals 1
.line 539
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_0
const/4 p0, 0x0
return-object p0
.line 540
:cond_0
invoke-static {p0, p1, p2, p3, p4}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIII)Landroid/graphics/Bitmap;
move-result-object p1
if-eqz p5, :cond_1
.line 541
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result p2
if-nez p2, :cond_1
if-eq p1, p0, :cond_1
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
:cond_1
return-object p1
.end method
.method public static compressByQuality(Landroid/graphics/Bitmap;I)[B
.locals 1
const/4 v0, 0x0
.line 2143
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/ImageUtils;->compressByQuality(Landroid/graphics/Bitmap;IZ)[B
move-result-object p0
return-object p0
.end method
.method public static compressByQuality(Landroid/graphics/Bitmap;IZ)[B
.locals 2
.line 2157
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_0
const/4 p0, 0x0
return-object p0
.line 2158
:cond_0
new-instance v0, Ljava/io/ByteArrayOutputStream;
invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 2159
sget-object v1, Landroid/graphics/Bitmap$CompressFormat;->JPEG:Landroid/graphics/Bitmap$CompressFormat;
invoke-virtual {p0, v1, p1, v0}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
.line 2160
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object p1
if-eqz p2, :cond_1
.line 2161
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result p2
if-nez p2, :cond_1
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
:cond_1
return-object p1
.end method
.method public static compressByQuality(Landroid/graphics/Bitmap;J)[B
.locals 1
const/4 v0, 0x0
.line 2173
invoke-static {p0, p1, p2, v0}, Lcom/blankj/utilcode/util/ImageUtils;->compressByQuality(Landroid/graphics/Bitmap;JZ)[B
move-result-object p0
return-object p0
.end method
.method public static compressByQuality(Landroid/graphics/Bitmap;JZ)[B
.locals 6
.line 2187
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
const/4 v1, 0x0
if-nez v0, :cond_8
const-wide/16 v2, 0x0
cmp-long v0, p1, v2
if-gtz v0, :cond_0
goto/16 :goto_3
.line 2188
:cond_0
new-instance v0, Ljava/io/ByteArrayOutputStream;
invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 2189
sget-object v2, Landroid/graphics/Bitmap$CompressFormat;->JPEG:Landroid/graphics/Bitmap$CompressFormat;
const/16 v3, 0x64
invoke-virtual {p0, v2, v3, v0}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
.line 2191
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->size()I
move-result v2
int-to-long v4, v2
cmp-long v2, v4, p1
if-gtz v2, :cond_1
.line 2192
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object p1
goto :goto_2
.line 2194
:cond_1
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->reset()V
.line 2195
sget-object v2, Landroid/graphics/Bitmap$CompressFormat;->JPEG:Landroid/graphics/Bitmap$CompressFormat;
invoke-virtual {p0, v2, v1, v0}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
.line 2196
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->size()I
move-result v2
int-to-long v4, v2
cmp-long v2, v4, p1
if-ltz v2, :cond_2
.line 2197
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object p1
goto :goto_2
:cond_2
move v2, v1
:goto_0
if-ge v1, v3, :cond_5
add-int v2, v1, v3
.line 2204
div-int/lit8 v2, v2, 0x2
.line 2205
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->reset()V
.line 2206
sget-object v4, Landroid/graphics/Bitmap$CompressFormat;->JPEG:Landroid/graphics/Bitmap$CompressFormat;
invoke-virtual {p0, v4, v2, v0}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
.line 2207
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->size()I
move-result v4
int-to-long v4, v4
cmp-long v4, v4, p1
if-nez v4, :cond_3
goto :goto_1
:cond_3
if-lez v4, :cond_4
add-int/lit8 v3, v2, -0x1
goto :goto_0
:cond_4
add-int/lit8 v1, v2, 0x1
goto :goto_0
:cond_5
:goto_1
add-int/lit8 v2, v2, -0x1
if-ne v3, v2, :cond_6
.line 2217
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->reset()V
.line 2218
sget-object p1, Landroid/graphics/Bitmap$CompressFormat;->JPEG:Landroid/graphics/Bitmap$CompressFormat;
invoke-virtual {p0, p1, v1, v0}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
.line 2220
:cond_6
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object p1
:goto_2
if-eqz p3, :cond_7
.line 2223
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result p2
if-nez p2, :cond_7
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
:cond_7
return-object p1
:cond_8
:goto_3
new-array p0, v1, [B
return-object p0
.end method
.method public static compressBySampleSize(Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap;
.locals 1
const/4 v0, 0x0
.line 2236
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/ImageUtils;->compressBySampleSize(Landroid/graphics/Bitmap;IZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static compressBySampleSize(Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap;
.locals 1
const/4 v0, 0x0
.line 2271
invoke-static {p0, p1, p2, v0}, Lcom/blankj/utilcode/util/ImageUtils;->compressBySampleSize(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static compressBySampleSize(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
.locals 4
.line 2287
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_0
const/4 p0, 0x0
return-object p0
.line 2288
:cond_0
new-instance v0, Landroid/graphics/BitmapFactory$Options;
invoke-direct {v0}, Landroid/graphics/BitmapFactory$Options;-><init>()V
const/4 v1, 0x1
.line 2289
iput-boolean v1, v0, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 2290
new-instance v1, Ljava/io/ByteArrayOutputStream;
invoke-direct {v1}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 2291
sget-object v2, Landroid/graphics/Bitmap$CompressFormat;->JPEG:Landroid/graphics/Bitmap$CompressFormat;
const/16 v3, 0x64
invoke-virtual {p0, v2, v3, v1}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
.line 2292
invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v1
.line 2293
array-length v2, v1
const/4 v3, 0x0
invoke-static {v1, v3, v2, v0}, Landroid/graphics/BitmapFactory;->decodeByteArray([BIILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
.line 2294
invoke-static {v0, p1, p2}, Lcom/blankj/utilcode/util/ImageUtils;->calculateInSampleSize(Landroid/graphics/BitmapFactory$Options;II)I
move-result p1
iput p1, v0, Landroid/graphics/BitmapFactory$Options;->inSampleSize:I
.line 2295
iput-boolean v3, v0, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
if-eqz p3, :cond_1
.line 2296
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result p1
if-nez p1, :cond_1
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
.line 2297
:cond_1
array-length p0, v1
invoke-static {v1, v3, p0, v0}, Landroid/graphics/BitmapFactory;->decodeByteArray([BIILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static compressBySampleSize(Landroid/graphics/Bitmap;IZ)Landroid/graphics/Bitmap;
.locals 3
.line 2250
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_0
const/4 p0, 0x0
return-object p0
.line 2251
:cond_0
new-instance v0, Landroid/graphics/BitmapFactory$Options;
invoke-direct {v0}, Landroid/graphics/BitmapFactory$Options;-><init>()V
.line 2252
iput p1, v0, Landroid/graphics/BitmapFactory$Options;->inSampleSize:I
.line 2253
new-instance p1, Ljava/io/ByteArrayOutputStream;
invoke-direct {p1}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 2254
sget-object v1, Landroid/graphics/Bitmap$CompressFormat;->JPEG:Landroid/graphics/Bitmap$CompressFormat;
const/16 v2, 0x64
invoke-virtual {p0, v1, v2, p1}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
.line 2255
invoke-virtual {p1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object p1
if-eqz p2, :cond_1
.line 2256
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result p2
if-nez p2, :cond_1
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
:cond_1
const/4 p0, 0x0
.line 2257
array-length p2, p1
invoke-static {p1, p0, p2, v0}, Landroid/graphics/BitmapFactory;->decodeByteArray([BIILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static compressByScale(Landroid/graphics/Bitmap;FF)Landroid/graphics/Bitmap;
.locals 1
const/4 v0, 0x0
.line 2115
invoke-static {p0, p1, p2, v0}, Lcom/blankj/utilcode/util/ImageUtils;->scale(Landroid/graphics/Bitmap;FFZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static compressByScale(Landroid/graphics/Bitmap;FFZ)Landroid/graphics/Bitmap;
.locals 0
.line 2131
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/ImageUtils;->scale(Landroid/graphics/Bitmap;FFZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static compressByScale(Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap;
.locals 1
const/4 v0, 0x0
.line 2085
invoke-static {p0, p1, p2, v0}, Lcom/blankj/utilcode/util/ImageUtils;->scale(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static compressByScale(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
.locals 0
.line 2101
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/ImageUtils;->scale(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static drawColor(Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap;
.locals 1
const-string v0, "Argument \'src\' of type Bitmap (#0 out of 2, zero-based) is marked by @android.support.annotation.NonNull but got null for it"
.line 418
invoke-static {p0, v0}, Ljava/util/Objects;->requireNonNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
const/4 v0, 0x0
.line 419
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/ImageUtils;->drawColor(Landroid/graphics/Bitmap;IZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static drawColor(Landroid/graphics/Bitmap;IZ)Landroid/graphics/Bitmap;
.locals 1
const-string v0, "Argument \'src\' of type Bitmap (#0 out of 3, zero-based) is marked by @android.support.annotation.NonNull but got null for it"
.line 430
invoke-static {p0, v0}, Ljava/util/Objects;->requireNonNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
.line 433
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_0
const/4 p0, 0x0
return-object p0
:cond_0
if-eqz p2, :cond_1
goto :goto_0
.line 434
:cond_1
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getConfig()Landroid/graphics/Bitmap$Config;
move-result-object p2
const/4 v0, 0x1
invoke-virtual {p0, p2, v0}, Landroid/graphics/Bitmap;->copy(Landroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap;
move-result-object p0
.line 435
:goto_0
new-instance p2, Landroid/graphics/Canvas;
invoke-direct {p2, p0}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
.line 436
sget-object v0, Landroid/graphics/PorterDuff$Mode;->DARKEN:Landroid/graphics/PorterDuff$Mode;
invoke-virtual {p2, p1, v0}, Landroid/graphics/Canvas;->drawColor(ILandroid/graphics/PorterDuff$Mode;)V
return-object p0
.end method
.method public static drawable2Bitmap(Landroid/graphics/drawable/Drawable;)Landroid/graphics/Bitmap;
.locals 5
if-nez p0, :cond_0
const/4 p0, 0x0
return-object p0
.line 117
:cond_0
instance-of v0, p0, Landroid/graphics/drawable/BitmapDrawable;
if-eqz v0, :cond_1
.line 118
move-object v0, p0
check-cast v0, Landroid/graphics/drawable/BitmapDrawable;
.line 119
invoke-virtual {v0}, Landroid/graphics/drawable/BitmapDrawable;->getBitmap()Landroid/graphics/Bitmap;
move-result-object v1
if-eqz v1, :cond_1
.line 120
invoke-virtual {v0}, Landroid/graphics/drawable/BitmapDrawable;->getBitmap()Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.line 124
:cond_1
invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->getIntrinsicWidth()I
move-result v0
const/4 v1, -0x1
if-lez v0, :cond_4
invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I
move-result v0
if-gtz v0, :cond_2
goto :goto_1
.line 130
:cond_2
invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->getIntrinsicWidth()I
move-result v0
.line 131
invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I
move-result v2
.line 132
invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->getOpacity()I
move-result v3
if-eq v3, v1, :cond_3
sget-object v1, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
goto :goto_0
:cond_3
sget-object v1, Landroid/graphics/Bitmap$Config;->RGB_565:Landroid/graphics/Bitmap$Config;
.line 130
:goto_0
invoke-static {v0, v2, v1}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v0
goto :goto_3
.line 126
:cond_4
:goto_1
invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->getOpacity()I
move-result v0
if-eq v0, v1, :cond_5
sget-object v0, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
goto :goto_2
:cond_5
sget-object v0, Landroid/graphics/Bitmap$Config;->RGB_565:Landroid/graphics/Bitmap$Config;
:goto_2
const/4 v1, 0x1
.line 125
invoke-static {v1, v1, v0}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v0
.line 136
:goto_3
new-instance v1, Landroid/graphics/Canvas;
invoke-direct {v1, v0}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
.line 137
invoke-virtual {v1}, Landroid/graphics/Canvas;->getWidth()I
move-result v2
invoke-virtual {v1}, Landroid/graphics/Canvas;->getHeight()I
move-result v3
const/4 v4, 0x0
invoke-virtual {p0, v4, v4, v2, v3}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V
.line 138
invoke-virtual {p0, v1}, Landroid/graphics/drawable/Drawable;->draw(Landroid/graphics/Canvas;)V
return-object v0
.end method
.method public static drawable2Bytes(Landroid/graphics/drawable/Drawable;)[B
.locals 0
if-nez p0, :cond_0
const/4 p0, 0x0
goto :goto_0
.line 159
:cond_0
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->drawable2Bitmap(Landroid/graphics/drawable/Drawable;)Landroid/graphics/Bitmap;
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->bitmap2Bytes(Landroid/graphics/Bitmap;)[B
move-result-object p0
:goto_0
return-object p0
.end method
.method public static drawable2Bytes(Landroid/graphics/drawable/Drawable;Landroid/graphics/Bitmap$CompressFormat;I)[B
.locals 0
if-nez p0, :cond_0
const/4 p0, 0x0
goto :goto_0
.line 170
:cond_0
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->drawable2Bitmap(Landroid/graphics/drawable/Drawable;)Landroid/graphics/Bitmap;
move-result-object p0
invoke-static {p0, p1, p2}, Lcom/blankj/utilcode/util/ImageUtils;->bitmap2Bytes(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap$CompressFormat;I)[B
move-result-object p0
:goto_0
return-object p0
.end method
.method public static fastBlur(Landroid/graphics/Bitmap;FF)Landroid/graphics/Bitmap;
.locals 1
const/4 v0, 0x0
.line 1259
invoke-static {p0, p1, p2, v0, v0}, Lcom/blankj/utilcode/util/ImageUtils;->fastBlur(Landroid/graphics/Bitmap;FFZZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static fastBlur(Landroid/graphics/Bitmap;FFZ)Landroid/graphics/Bitmap;
.locals 1
const/4 v0, 0x0
.line 1279
invoke-static {p0, p1, p2, p3, v0}, Lcom/blankj/utilcode/util/ImageUtils;->fastBlur(Landroid/graphics/Bitmap;FFZZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static fastBlur(Landroid/graphics/Bitmap;FFZZ)Landroid/graphics/Bitmap;
.locals 9
.line 1302
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_0
const/4 p0, 0x0
return-object p0
.line 1303
:cond_0
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v0
.line 1304
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v1
.line 1305
new-instance v7, Landroid/graphics/Matrix;
invoke-direct {v7}, Landroid/graphics/Matrix;-><init>()V
.line 1306
invoke-virtual {v7, p1, p1}, Landroid/graphics/Matrix;->setScale(FF)V
const/4 v3, 0x0
const/4 v4, 0x0
.line 1308
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v5
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v6
const/4 v8, 0x1
move-object v2, p0
invoke-static/range {v2 .. v8}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap;
move-result-object v2
.line 1309
new-instance v3, Landroid/graphics/Paint;
const/4 v4, 0x3
invoke-direct {v3, v4}, Landroid/graphics/Paint;-><init>(I)V
.line 1310
new-instance v4, Landroid/graphics/Canvas;
invoke-direct {v4}, Landroid/graphics/Canvas;-><init>()V
.line 1311
new-instance v5, Landroid/graphics/PorterDuffColorFilter;
const/4 v6, 0x0
sget-object v7, Landroid/graphics/PorterDuff$Mode;->SRC_ATOP:Landroid/graphics/PorterDuff$Mode;
invoke-direct {v5, v6, v7}, Landroid/graphics/PorterDuffColorFilter;-><init>(ILandroid/graphics/PorterDuff$Mode;)V
.line 1313
invoke-virtual {v3, v5}, Landroid/graphics/Paint;->setColorFilter(Landroid/graphics/ColorFilter;)Landroid/graphics/ColorFilter;
.line 1314
invoke-virtual {v4, p1, p1}, Landroid/graphics/Canvas;->scale(FF)V
const/4 v5, 0x0
.line 1315
invoke-virtual {v4, v2, v5, v5, v3}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V
.line 1316
sget v3, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v4, 0x11
if-lt v3, v4, :cond_1
.line 1317
invoke-static {v2, p2, p3}, Lcom/blankj/utilcode/util/ImageUtils;->renderScriptBlur(Landroid/graphics/Bitmap;FZ)Landroid/graphics/Bitmap;
move-result-object p2
goto :goto_0
:cond_1
float-to-int p2, p2
.line 1319
invoke-static {v2, p2, p3}, Lcom/blankj/utilcode/util/ImageUtils;->stackBlur(Landroid/graphics/Bitmap;IZ)Landroid/graphics/Bitmap;
move-result-object p2
:goto_0
const/high16 v2, 0x3f800000 # 1.0f
cmpl-float p1, p1, v2
if-eqz p1, :cond_5
if-eqz p4, :cond_2
goto :goto_1
:cond_2
const/4 p1, 0x1
.line 1325
invoke-static {p2, v0, v1, p1}, Landroid/graphics/Bitmap;->createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
move-result-object p1
.line 1326
invoke-virtual {p2}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result p4
if-nez p4, :cond_3
invoke-virtual {p2}, Landroid/graphics/Bitmap;->recycle()V
:cond_3
if-eqz p3, :cond_4
.line 1327
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result p2
if-nez p2, :cond_4
if-eq p1, p0, :cond_4
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
:cond_4
return-object p1
:cond_5
:goto_1
if-eqz p3, :cond_6
.line 1322
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result p1
if-nez p1, :cond_6
if-eq p2, p0, :cond_6
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
:cond_6
return-object p2
.end method
.method public static getBitmap(I)Landroid/graphics/Bitmap;
.locals 5
.line 346
invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application;
move-result-object v0
invoke-static {v0, p0}, Landroidx/core/content/ContextCompat;->getDrawable(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;
move-result-object p0
if-nez p0, :cond_0
const/4 p0, 0x0
return-object p0
.line 350
:cond_0
new-instance v0, Landroid/graphics/Canvas;
invoke-direct {v0}, Landroid/graphics/Canvas;-><init>()V
.line 351
invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->getIntrinsicWidth()I
move-result v1
.line 352
invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I
move-result v2
sget-object v3, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
.line 351
invoke-static {v1, v2, v3}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v1
.line 354
invoke-virtual {v0, v1}, Landroid/graphics/Canvas;->setBitmap(Landroid/graphics/Bitmap;)V
.line 355
invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->getIntrinsicWidth()I
move-result v2
invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I
move-result v3
const/4 v4, 0x0
invoke-virtual {p0, v4, v4, v2, v3}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V
.line 356
invoke-virtual {p0, v0}, Landroid/graphics/drawable/Drawable;->draw(Landroid/graphics/Canvas;)V
return-object v1
.end method
.method public static getBitmap(III)Landroid/graphics/Bitmap;
.locals 3
.line 371
new-instance v0, Landroid/graphics/BitmapFactory$Options;
invoke-direct {v0}, Landroid/graphics/BitmapFactory$Options;-><init>()V
.line 372
invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application;
move-result-object v1
invoke-virtual {v1}, Landroid/app/Application;->getResources()Landroid/content/res/Resources;
move-result-object v1
const/4 v2, 0x1
.line 373
iput-boolean v2, v0, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 374
invoke-static {v1, p0, v0}, Landroid/graphics/BitmapFactory;->decodeResource(Landroid/content/res/Resources;ILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
.line 375
invoke-static {v0, p1, p2}, Lcom/blankj/utilcode/util/ImageUtils;->calculateInSampleSize(Landroid/graphics/BitmapFactory$Options;II)I
move-result p1
iput p1, v0, Landroid/graphics/BitmapFactory$Options;->inSampleSize:I
const/4 p1, 0x0
.line 376
iput-boolean p1, v0, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 377
invoke-static {v1, p0, v0}, Landroid/graphics/BitmapFactory;->decodeResource(Landroid/content/res/Resources;ILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static getBitmap(Ljava/io/File;)Landroid/graphics/Bitmap;
.locals 0
if-nez p0, :cond_0
const/4 p0, 0x0
return-object p0
.line 226
:cond_0
invoke-virtual {p0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object p0
invoke-static {p0}, Landroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static getBitmap(Ljava/io/File;II)Landroid/graphics/Bitmap;
.locals 2
if-nez p0, :cond_0
const/4 p0, 0x0
return-object p0
.line 239
:cond_0
new-instance v0, Landroid/graphics/BitmapFactory$Options;
invoke-direct {v0}, Landroid/graphics/BitmapFactory$Options;-><init>()V
const/4 v1, 0x1
.line 240
iput-boolean v1, v0, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 241
invoke-virtual {p0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v1
invoke-static {v1, v0}, Landroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
.line 242
invoke-static {v0, p1, p2}, Lcom/blankj/utilcode/util/ImageUtils;->calculateInSampleSize(Landroid/graphics/BitmapFactory$Options;II)I
move-result p1
iput p1, v0, Landroid/graphics/BitmapFactory$Options;->inSampleSize:I
const/4 p1, 0x0
.line 243
iput-boolean p1, v0, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 244
invoke-virtual {p0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object p0
invoke-static {p0, v0}, Landroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static getBitmap(Ljava/io/FileDescriptor;)Landroid/graphics/Bitmap;
.locals 0
if-nez p0, :cond_0
const/4 p0, 0x0
return-object p0
.line 388
:cond_0
invoke-static {p0}, Landroid/graphics/BitmapFactory;->decodeFileDescriptor(Ljava/io/FileDescriptor;)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static getBitmap(Ljava/io/FileDescriptor;II)Landroid/graphics/Bitmap;
.locals 3
const/4 v0, 0x0
if-nez p0, :cond_0
return-object v0
.line 403
:cond_0
new-instance v1, Landroid/graphics/BitmapFactory$Options;
invoke-direct {v1}, Landroid/graphics/BitmapFactory$Options;-><init>()V
const/4 v2, 0x1
.line 404
iput-boolean v2, v1, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 405
invoke-static {p0, v0, v1}, Landroid/graphics/BitmapFactory;->decodeFileDescriptor(Ljava/io/FileDescriptor;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
.line 406
invoke-static {v1, p1, p2}, Lcom/blankj/utilcode/util/ImageUtils;->calculateInSampleSize(Landroid/graphics/BitmapFactory$Options;II)I
move-result p1
iput p1, v1, Landroid/graphics/BitmapFactory$Options;->inSampleSize:I
const/4 p1, 0x0
.line 407
iput-boolean p1, v1, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 408
invoke-static {p0, v0, v1}, Landroid/graphics/BitmapFactory;->decodeFileDescriptor(Ljava/io/FileDescriptor;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static getBitmap(Ljava/io/InputStream;)Landroid/graphics/Bitmap;
.locals 0
if-nez p0, :cond_0
const/4 p0, 0x0
return-object p0
.line 284
:cond_0
invoke-static {p0}, Landroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static getBitmap(Ljava/io/InputStream;II)Landroid/graphics/Bitmap;
.locals 3
const/4 v0, 0x0
if-nez p0, :cond_0
return-object v0
.line 297
:cond_0
new-instance v1, Landroid/graphics/BitmapFactory$Options;
invoke-direct {v1}, Landroid/graphics/BitmapFactory$Options;-><init>()V
const/4 v2, 0x1
.line 298
iput-boolean v2, v1, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 299
invoke-static {p0, v0, v1}, Landroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
.line 300
invoke-static {v1, p1, p2}, Lcom/blankj/utilcode/util/ImageUtils;->calculateInSampleSize(Landroid/graphics/BitmapFactory$Options;II)I
move-result p1
iput p1, v1, Landroid/graphics/BitmapFactory$Options;->inSampleSize:I
const/4 p1, 0x0
.line 301
iput-boolean p1, v1, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 302
invoke-static {p0, v0, v1}, Landroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static getBitmap(Ljava/lang/String;)Landroid/graphics/Bitmap;
.locals 1
.line 254
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->isSpace(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_0
const/4 p0, 0x0
return-object p0
.line 255
:cond_0
invoke-static {p0}, Landroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static getBitmap(Ljava/lang/String;II)Landroid/graphics/Bitmap;
.locals 2
.line 267
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->isSpace(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_0
const/4 p0, 0x0
return-object p0
.line 268
:cond_0
new-instance v0, Landroid/graphics/BitmapFactory$Options;
invoke-direct {v0}, Landroid/graphics/BitmapFactory$Options;-><init>()V
const/4 v1, 0x1
.line 269
iput-boolean v1, v0, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 270
invoke-static {p0, v0}, Landroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
.line 271
invoke-static {v0, p1, p2}, Lcom/blankj/utilcode/util/ImageUtils;->calculateInSampleSize(Landroid/graphics/BitmapFactory$Options;II)I
move-result p1
iput p1, v0, Landroid/graphics/BitmapFactory$Options;->inSampleSize:I
const/4 p1, 0x0
.line 272
iput-boolean p1, v0, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 273
invoke-static {p0, v0}, Landroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static getBitmap([BI)Landroid/graphics/Bitmap;
.locals 1
.line 313
array-length v0, p0
if-nez v0, :cond_0
const/4 p0, 0x0
return-object p0
.line 314
:cond_0
array-length v0, p0
invoke-static {p0, p1, v0}, Landroid/graphics/BitmapFactory;->decodeByteArray([BII)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static getBitmap([BIII)Landroid/graphics/Bitmap;
.locals 2
.line 330
array-length v0, p0
if-nez v0, :cond_0
const/4 p0, 0x0
return-object p0
.line 331
:cond_0
new-instance v0, Landroid/graphics/BitmapFactory$Options;
invoke-direct {v0}, Landroid/graphics/BitmapFactory$Options;-><init>()V
const/4 v1, 0x1
.line 332
iput-boolean v1, v0, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 333
array-length v1, p0
invoke-static {p0, p1, v1, v0}, Landroid/graphics/BitmapFactory;->decodeByteArray([BIILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
.line 334
invoke-static {v0, p2, p3}, Lcom/blankj/utilcode/util/ImageUtils;->calculateInSampleSize(Landroid/graphics/BitmapFactory$Options;II)I
move-result p2
iput p2, v0, Landroid/graphics/BitmapFactory$Options;->inSampleSize:I
const/4 p2, 0x0
.line 335
iput-boolean p2, v0, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 336
array-length p2, p0
invoke-static {p0, p1, p2, v0}, Landroid/graphics/BitmapFactory;->decodeByteArray([BIILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static getImageType(Ljava/io/File;)Lcom/blankj/utilcode/util/ImageUtils$ImageType;
.locals 2
const/4 v0, 0x0
if-nez p0, :cond_0
return-object v0
.line 1990
:cond_0
:try_start_0
new-instance v1, Ljava/io/FileInputStream;
invoke-direct {v1, p0}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
:try_end_0
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_2
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 1991
:try_start_1
invoke-static {v1}, Lcom/blankj/utilcode/util/ImageUtils;->getImageType(Ljava/io/InputStream;)Lcom/blankj/utilcode/util/ImageUtils$ImageType;
move-result-object p0
:try_end_1
.catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_1
.catchall {:try_start_1 .. :try_end_1} :catchall_1
if-eqz p0, :cond_1
.line 2000
:try_start_2
invoke-virtual {v1}, Ljava/io/InputStream;->close()V
:try_end_2
.catch Ljava/io/IOException; {:try_start_2 .. :try_end_2} :catch_0
goto :goto_0
:catch_0
move-exception v0
.line 2003
invoke-virtual {v0}, Ljava/io/IOException;->printStackTrace()V
:goto_0
return-object p0
.line 2000
:cond_1
:try_start_3
invoke-virtual {v1}, Ljava/io/InputStream;->close()V
:try_end_3
.catch Ljava/io/IOException; {:try_start_3 .. :try_end_3} :catch_3
goto :goto_2
:catch_1
move-exception p0
goto :goto_1
:catchall_0
move-exception p0
goto :goto_3
:catch_2
move-exception p0
move-object v1, v0
.line 1996
:goto_1
:try_start_4
invoke-virtual {p0}, Ljava/io/IOException;->printStackTrace()V
:try_end_4
.catchall {:try_start_4 .. :try_end_4} :catchall_1
if-eqz v1, :cond_2
.line 2000
:try_start_5
invoke-virtual {v1}, Ljava/io/InputStream;->close()V
:try_end_5
.catch Ljava/io/IOException; {:try_start_5 .. :try_end_5} :catch_3
goto :goto_2
:catch_3
move-exception p0
.line 2003
invoke-virtual {p0}, Ljava/io/IOException;->printStackTrace()V
:cond_2
:goto_2
return-object v0
:catchall_1
move-exception p0
move-object v0, v1
:goto_3
if-eqz v0, :cond_3
.line 2000
:try_start_6
invoke-virtual {v0}, Ljava/io/InputStream;->close()V
:try_end_6
.catch Ljava/io/IOException; {:try_start_6 .. :try_end_6} :catch_4
goto :goto_4
:catch_4
move-exception v0
.line 2003
invoke-virtual {v0}, Ljava/io/IOException;->printStackTrace()V
.line 2005
:cond_3
:goto_4
throw p0
.end method
.method private static getImageType(Ljava/io/InputStream;)Lcom/blankj/utilcode/util/ImageUtils$ImageType;
.locals 3
const/4 v0, 0x0
if-nez p0, :cond_0
return-object v0
:cond_0
const/16 v1, 0xc
:try_start_0
new-array v1, v1, [B
.line 2013
invoke-virtual {p0, v1}, Ljava/io/InputStream;->read([B)I
move-result p0
const/4 v2, -0x1
if-eq p0, v2, :cond_1
invoke-static {v1}, Lcom/blankj/utilcode/util/ImageUtils;->getImageType([B)Lcom/blankj/utilcode/util/ImageUtils$ImageType;
move-result-object v0
:try_end_0
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
:cond_1
return-object v0
:catch_0
move-exception p0
.line 2015
invoke-virtual {p0}, Ljava/io/IOException;->printStackTrace()V
return-object v0
.end method
.method public static getImageType(Ljava/lang/String;)Lcom/blankj/utilcode/util/ImageUtils$ImageType;
.locals 0
.line 1977
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->getImageType(Ljava/io/File;)Lcom/blankj/utilcode/util/ImageUtils$ImageType;
move-result-object p0
return-object p0
.end method
.method private static getImageType([B)Lcom/blankj/utilcode/util/ImageUtils$ImageType;
.locals 1
.line 2021
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->bytes2HexString([B)Ljava/lang/String;
move-result-object p0
invoke-virtual {p0}, Ljava/lang/String;->toUpperCase()Ljava/lang/String;
move-result-object p0
const-string v0, "FFD8FF"
.line 2022
invoke-virtual {p0, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_0
.line 2023
sget-object p0, Lcom/blankj/utilcode/util/ImageUtils$ImageType;->TYPE_JPG:Lcom/blankj/utilcode/util/ImageUtils$ImageType;
return-object p0
:cond_0
const-string v0, "89504E47"
.line 2024
invoke-virtual {p0, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_1
.line 2025
sget-object p0, Lcom/blankj/utilcode/util/ImageUtils$ImageType;->TYPE_PNG:Lcom/blankj/utilcode/util/ImageUtils$ImageType;
return-object p0
:cond_1
const-string v0, "47494638"
.line 2026
invoke-virtual {p0, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_2
.line 2027
sget-object p0, Lcom/blankj/utilcode/util/ImageUtils$ImageType;->TYPE_GIF:Lcom/blankj/utilcode/util/ImageUtils$ImageType;
return-object p0
:cond_2
const-string v0, "49492A00"
.line 2028
invoke-virtual {p0, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_8
const-string v0, "4D4D002A"
invoke-virtual {p0, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_3
goto :goto_1
:cond_3
const-string v0, "424D"
.line 2030
invoke-virtual {p0, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_4
.line 2031
sget-object p0, Lcom/blankj/utilcode/util/ImageUtils$ImageType;->TYPE_BMP:Lcom/blankj/utilcode/util/ImageUtils$ImageType;
return-object p0
:cond_4
const-string v0, "52494646"
.line 2032
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_5
const-string v0, "57454250"
invoke-virtual {p0, v0}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_5
.line 2033
sget-object p0, Lcom/blankj/utilcode/util/ImageUtils$ImageType;->TYPE_WEBP:Lcom/blankj/utilcode/util/ImageUtils$ImageType;
return-object p0
:cond_5
const-string v0, "00000100"
.line 2034
invoke-virtual {p0, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_7
const-string v0, "00000200"
invoke-virtual {p0, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result p0
if-eqz p0, :cond_6
goto :goto_0
.line 2037
:cond_6
sget-object p0, Lcom/blankj/utilcode/util/ImageUtils$ImageType;->TYPE_UNKNOWN:Lcom/blankj/utilcode/util/ImageUtils$ImageType;
return-object p0
.line 2035
:cond_7
:goto_0
sget-object p0, Lcom/blankj/utilcode/util/ImageUtils$ImageType;->TYPE_ICO:Lcom/blankj/utilcode/util/ImageUtils$ImageType;
return-object p0
.line 2029
:cond_8
:goto_1
sget-object p0, Lcom/blankj/utilcode/util/ImageUtils$ImageType;->TYPE_TIFF:Lcom/blankj/utilcode/util/ImageUtils$ImageType;
return-object p0
.end method
.method public static getRotateDegree(Ljava/lang/String;)I
.locals 2
.line 664
:try_start_0
new-instance v0, Landroid/media/ExifInterface;
invoke-direct {v0, p0}, Landroid/media/ExifInterface;-><init>(Ljava/lang/String;)V
const-string p0, "Orientation"
const/4 v1, 0x1
.line 665
invoke-virtual {v0, p0, v1}, Landroid/media/ExifInterface;->getAttributeInt(Ljava/lang/String;I)I
move-result p0
:try_end_0
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
const/4 v0, 0x3
if-eq p0, v0, :cond_2
const/4 v0, 0x6
if-eq p0, v0, :cond_1
const/16 v0, 0x8
if-eq p0, v0, :cond_0
const/4 p0, 0x0
return p0
:cond_0
const/16 p0, 0x10e
return p0
:cond_1
const/16 p0, 0x5a
return p0
:cond_2
const/16 p0, 0xb4
return p0
:catch_0
move-exception p0
.line 680
invoke-virtual {p0}, Ljava/io/IOException;->printStackTrace()V
const/4 p0, -0x1
return p0
.end method
.method public static getSize(Ljava/io/File;)[I
.locals 4
const/4 v0, 0x2
if-nez p0, :cond_0
new-array p0, v0, [I
.line 2317
fill-array-data p0, :array_0
return-object p0
.line 2318
:cond_0
new-instance v1, Landroid/graphics/BitmapFactory$Options;
invoke-direct {v1}, Landroid/graphics/BitmapFactory$Options;-><init>()V
const/4 v2, 0x1
.line 2319
iput-boolean v2, v1, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 2320
invoke-virtual {p0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object p0
invoke-static {p0, v1}, Landroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
new-array p0, v0, [I
const/4 v0, 0x0
.line 2321
iget v3, v1, Landroid/graphics/BitmapFactory$Options;->outWidth:I
aput v3, p0, v0
iget v0, v1, Landroid/graphics/BitmapFactory$Options;->outHeight:I
aput v0, p0, v2
return-object p0
:array_0
.array-data 4
0x0
0x0
.end array-data
.end method
.method public static getSize(Ljava/lang/String;)[I
.locals 0
.line 2307
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->getSize(Ljava/io/File;)[I
move-result-object p0
return-object p0
.end method
.method private static isBMP([B)Z
.locals 4
.line 2062
array-length v0, p0
const/4 v1, 0x1
const/4 v2, 0x0
const/4 v3, 0x2
if-lt v0, v3, :cond_0
aget-byte v0, p0, v2
const/16 v3, 0x42
if-ne v0, v3, :cond_0
aget-byte p0, p0, v1
const/16 v0, 0x4d
if-ne p0, v0, :cond_0
goto :goto_0
:cond_0
move v1, v2
:goto_0
return v1
.end method
.method private static isEmptyBitmap(Landroid/graphics/Bitmap;)Z
.locals 1
if-eqz p0, :cond_1
.line 2067
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v0
if-eqz v0, :cond_1
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result p0
if-nez p0, :cond_0
goto :goto_0
:cond_0
const/4 p0, 0x0
goto :goto_1
:cond_1
:goto_0
const/4 p0, 0x1
:goto_1
return p0
.end method
.method private static isGIF([B)Z
.locals 5
.line 2047
array-length v0, p0
const/4 v1, 0x1
const/4 v2, 0x0
const/4 v3, 0x6
if-lt v0, v3, :cond_1
aget-byte v0, p0, v2
const/16 v3, 0x47
if-ne v0, v3, :cond_1
aget-byte v0, p0, v1
const/16 v3, 0x49
if-ne v0, v3, :cond_1
const/4 v0, 0x2
aget-byte v0, p0, v0
const/16 v3, 0x46
if-ne v0, v3, :cond_1
const/4 v0, 0x3
aget-byte v0, p0, v0
const/16 v3, 0x38
if-ne v0, v3, :cond_1
const/4 v0, 0x4
aget-byte v3, p0, v0
const/16 v4, 0x37
if-eq v3, v4, :cond_0
aget-byte v0, p0, v0
const/16 v3, 0x39
if-ne v0, v3, :cond_1
:cond_0
const/4 v0, 0x5
aget-byte p0, p0, v0
const/16 v0, 0x61
if-ne p0, v0, :cond_1
goto :goto_0
:cond_1
move v1, v2
:goto_0
return v1
.end method
.method public static isImage(Ljava/io/File;)Z
.locals 1
if-eqz p0, :cond_1
.line 1947
invoke-virtual {p0}, Ljava/io/File;->exists()Z
move-result v0
if-nez v0, :cond_0
goto :goto_0
.line 1950
:cond_0
invoke-virtual {p0}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isImage(Ljava/lang/String;)Z
move-result p0
return p0
:cond_1
:goto_0
const/4 p0, 0x0
return p0
.end method
.method public static isImage(Ljava/lang/String;)Z
.locals 3
const/4 v0, 0x0
.line 1961
:try_start_0
new-instance v1, Landroid/graphics/BitmapFactory$Options;
invoke-direct {v1}, Landroid/graphics/BitmapFactory$Options;-><init>()V
const/4 v2, 0x1
.line 1962
iput-boolean v2, v1, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 1963
invoke-static {p0, v1}, Landroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
.line 1964
iget p0, v1, Landroid/graphics/BitmapFactory$Options;->outWidth:I
if-lez p0, :cond_0
iget p0, v1, Landroid/graphics/BitmapFactory$Options;->outHeight:I
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
if-lez p0, :cond_0
move v0, v2
:catch_0
:cond_0
return v0
.end method
.method private static isJPEG([B)Z
.locals 4
.line 2042
array-length v0, p0
const/4 v1, 0x1
const/4 v2, 0x0
const/4 v3, 0x2
if-lt v0, v3, :cond_0
aget-byte v0, p0, v2
const/4 v3, -0x1
if-ne v0, v3, :cond_0
aget-byte p0, p0, v1
const/16 v0, -0x28
if-ne p0, v0, :cond_0
goto :goto_0
:cond_0
move v1, v2
:goto_0
return v1
.end method
.method private static isPNG([B)Z
.locals 5
.line 2054
array-length v0, p0
const/4 v1, 0x1
const/4 v2, 0x0
const/16 v3, 0x8
if-lt v0, v3, :cond_0
aget-byte v0, p0, v2
const/16 v3, -0x77
if-ne v0, v3, :cond_0
aget-byte v0, p0, v1
const/16 v3, 0x50
if-ne v0, v3, :cond_0
const/4 v0, 0x2
aget-byte v0, p0, v0
const/16 v3, 0x4e
if-ne v0, v3, :cond_0
const/4 v0, 0x3
aget-byte v0, p0, v0
const/16 v3, 0x47
if-ne v0, v3, :cond_0
const/4 v0, 0x4
aget-byte v0, p0, v0
const/16 v3, 0xd
if-ne v0, v3, :cond_0
const/4 v0, 0x5
aget-byte v0, p0, v0
const/16 v3, 0xa
if-ne v0, v3, :cond_0
const/4 v0, 0x6
aget-byte v0, p0, v0
const/16 v4, 0x1a
if-ne v0, v4, :cond_0
const/4 v0, 0x7
aget-byte p0, p0, v0
if-ne p0, v3, :cond_0
goto :goto_0
:cond_0
move v1, v2
:goto_0
return v1
.end method
.method public static renderScriptBlur(Landroid/graphics/Bitmap;F)Landroid/graphics/Bitmap;
.locals 1
const/4 v0, 0x0
.line 1343
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/ImageUtils;->renderScriptBlur(Landroid/graphics/Bitmap;FZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static renderScriptBlur(Landroid/graphics/Bitmap;FZ)Landroid/graphics/Bitmap;
.locals 3
const/4 v0, 0x1
if-eqz p2, :cond_0
goto :goto_0
.line 1361
:cond_0
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getConfig()Landroid/graphics/Bitmap$Config;
move-result-object p2
invoke-virtual {p0, p2, v0}, Landroid/graphics/Bitmap;->copy(Landroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap;
move-result-object p0
:goto_0
const/4 p2, 0x0
.line 1363
:try_start_0
invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application;
move-result-object v1
invoke-static {v1}, Landroid/renderscript/RenderScript;->create(Landroid/content/Context;)Landroid/renderscript/RenderScript;
move-result-object p2
.line 1364
new-instance v1, Landroid/renderscript/RenderScript$RSMessageHandler;
invoke-direct {v1}, Landroid/renderscript/RenderScript$RSMessageHandler;-><init>()V
invoke-virtual {p2, v1}, Landroid/renderscript/RenderScript;->setMessageHandler(Landroid/renderscript/RenderScript$RSMessageHandler;)V
.line 1365
sget-object v1, Landroid/renderscript/Allocation$MipmapControl;->MIPMAP_NONE:Landroid/renderscript/Allocation$MipmapControl;
invoke-static {p2, p0, v1, v0}, Landroid/renderscript/Allocation;->createFromBitmap(Landroid/renderscript/RenderScript;Landroid/graphics/Bitmap;Landroid/renderscript/Allocation$MipmapControl;I)Landroid/renderscript/Allocation;
move-result-object v0
.line 1369
invoke-virtual {v0}, Landroid/renderscript/Allocation;->getType()Landroid/renderscript/Type;
move-result-object v1
invoke-static {p2, v1}, Landroid/renderscript/Allocation;->createTyped(Landroid/renderscript/RenderScript;Landroid/renderscript/Type;)Landroid/renderscript/Allocation;
move-result-object v1
.line 1370
invoke-static {p2}, Landroid/renderscript/Element;->U8_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
move-result-object v2
invoke-static {p2, v2}, Landroid/renderscript/ScriptIntrinsicBlur;->create(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)Landroid/renderscript/ScriptIntrinsicBlur;
move-result-object v2
.line 1371
invoke-virtual {v2, v0}, Landroid/renderscript/ScriptIntrinsicBlur;->setInput(Landroid/renderscript/Allocation;)V
.line 1372
invoke-virtual {v2, p1}, Landroid/renderscript/ScriptIntrinsicBlur;->setRadius(F)V
.line 1373
invoke-virtual {v2, v1}, Landroid/renderscript/ScriptIntrinsicBlur;->forEach(Landroid/renderscript/Allocation;)V
.line 1374
invoke-virtual {v1, p0}, Landroid/renderscript/Allocation;->copyTo(Landroid/graphics/Bitmap;)V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
if-eqz p2, :cond_1
.line 1377
invoke-virtual {p2}, Landroid/renderscript/RenderScript;->destroy()V
:cond_1
return-object p0
:catchall_0
move-exception p0
if-eqz p2, :cond_2
invoke-virtual {p2}, Landroid/renderscript/RenderScript;->destroy()V
.line 1379
:cond_2
throw p0
.end method
.method public static rotate(Landroid/graphics/Bitmap;IFF)Landroid/graphics/Bitmap;
.locals 1
const/4 v0, 0x0
.line 629
invoke-static {p0, p1, p2, p3, v0}, Lcom/blankj/utilcode/util/ImageUtils;->rotate(Landroid/graphics/Bitmap;IFFZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static rotate(Landroid/graphics/Bitmap;IFFZ)Landroid/graphics/Bitmap;
.locals 7
.line 647
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_0
const/4 p0, 0x0
return-object p0
:cond_0
if-nez p1, :cond_1
return-object p0
.line 649
:cond_1
new-instance v5, Landroid/graphics/Matrix;
invoke-direct {v5}, Landroid/graphics/Matrix;-><init>()V
int-to-float p1, p1
.line 650
invoke-virtual {v5, p1, p2, p3}, Landroid/graphics/Matrix;->setRotate(FFF)V
const/4 v1, 0x0
const/4 v2, 0x0
.line 651
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v3
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v4
const/4 v6, 0x1
move-object v0, p0
invoke-static/range {v0 .. v6}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap;
move-result-object p1
if-eqz p4, :cond_2
.line 652
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result p2
if-nez p2, :cond_2
if-eq p1, p0, :cond_2
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
:cond_2
return-object p1
.end method
.method public static save(Landroid/graphics/Bitmap;Ljava/io/File;Landroid/graphics/Bitmap$CompressFormat;)Z
.locals 2
const/16 v0, 0x64
const/4 v1, 0x0
.line 1622
invoke-static {p0, p1, p2, v0, v1}, Lcom/blankj/utilcode/util/ImageUtils;->save(Landroid/graphics/Bitmap;Ljava/io/File;Landroid/graphics/Bitmap$CompressFormat;IZ)Z
move-result p0
return p0
.end method
.method public static save(Landroid/graphics/Bitmap;Ljava/io/File;Landroid/graphics/Bitmap$CompressFormat;I)Z
.locals 1
const/4 v0, 0x0
.line 1688
invoke-static {p0, p1, p2, p3, v0}, Lcom/blankj/utilcode/util/ImageUtils;->save(Landroid/graphics/Bitmap;Ljava/io/File;Landroid/graphics/Bitmap$CompressFormat;IZ)Z
move-result p0
return p0
.end method
.method public static save(Landroid/graphics/Bitmap;Ljava/io/File;Landroid/graphics/Bitmap$CompressFormat;IZ)Z
.locals 4
.line 1730
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
const-string v1, "ImageUtils"
const/4 v2, 0x0
if-eqz v0, :cond_0
const-string p0, "bitmap is empty."
.line 1731
invoke-static {v1, p0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
return v2
.line 1734
:cond_0
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v0
if-eqz v0, :cond_1
const-string p0, "bitmap is recycled."
.line 1735
invoke-static {v1, p0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
return v2
.line 1738
:cond_1
invoke-static {p1}, Lcom/blankj/utilcode/util/UtilsBridge;->createFileByDeleteOldFile(Ljava/io/File;)Z
move-result v0
if-nez v0, :cond_2
.line 1739
new-instance p0, Ljava/lang/StringBuilder;
invoke-direct {p0}, Ljava/lang/StringBuilder;-><init>()V
const-string p2, "create or delete file <"
invoke-virtual {p0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object p0
invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object p0
const-string p1, "> failed."
invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object p0
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-static {v1, p0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
return v2
:cond_2
const/4 v0, 0x0
.line 1745
:try_start_0
new-instance v1, Ljava/io/BufferedOutputStream;
new-instance v3, Ljava/io/FileOutputStream;
invoke-direct {v3, p1}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
invoke-direct {v1, v3}, Ljava/io/BufferedOutputStream;-><init>(Ljava/io/OutputStream;)V
:try_end_0
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_2
.catchall {:try_start_0 .. :try_end_0} :catchall_1
.line 1746
:try_start_1
invoke-virtual {p0, p2, p3, v1}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
move-result v2
if-eqz p4, :cond_3
.line 1747
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result p1
if-nez p1, :cond_3
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
:try_end_1
.catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
.line 1753
:cond_3
:try_start_2
invoke-virtual {v1}, Ljava/io/OutputStream;->close()V
:try_end_2
.catch Ljava/io/IOException; {:try_start_2 .. :try_end_2} :catch_0
goto :goto_1
:catch_0
move-exception p0
.line 1756
invoke-virtual {p0}, Ljava/io/IOException;->printStackTrace()V
goto :goto_1
:catchall_0
move-exception p0
move-object v0, v1
goto :goto_2
:catch_1
move-exception p0
move-object v0, v1
goto :goto_0
:catchall_1
move-exception p0
goto :goto_2
:catch_2
move-exception p0
.line 1749
:goto_0
:try_start_3
invoke-virtual {p0}, Ljava/io/IOException;->printStackTrace()V
:try_end_3
.catchall {:try_start_3 .. :try_end_3} :catchall_1
if-eqz v0, :cond_4
.line 1753
:try_start_4
invoke-virtual {v0}, Ljava/io/OutputStream;->close()V
:try_end_4
.catch Ljava/io/IOException; {:try_start_4 .. :try_end_4} :catch_0
:cond_4
:goto_1
return v2
:goto_2
if-eqz v0, :cond_5
:try_start_5
invoke-virtual {v0}, Ljava/io/OutputStream;->close()V
:try_end_5
.catch Ljava/io/IOException; {:try_start_5 .. :try_end_5} :catch_3
goto :goto_3
:catch_3
move-exception p1
.line 1756
invoke-virtual {p1}, Ljava/io/IOException;->printStackTrace()V
.line 1758
:cond_5
:goto_3
throw p0
.end method
.method public static save(Landroid/graphics/Bitmap;Ljava/io/File;Landroid/graphics/Bitmap$CompressFormat;Z)Z
.locals 1
const/16 v0, 0x64
.line 1654
invoke-static {p0, p1, p2, v0, p3}, Lcom/blankj/utilcode/util/ImageUtils;->save(Landroid/graphics/Bitmap;Ljava/io/File;Landroid/graphics/Bitmap$CompressFormat;IZ)Z
move-result p0
return p0
.end method
.method public static save(Landroid/graphics/Bitmap;Ljava/lang/String;Landroid/graphics/Bitmap$CompressFormat;)Z
.locals 2
const/16 v0, 0x64
const/4 v1, 0x0
.line 1610
invoke-static {p0, p1, p2, v0, v1}, Lcom/blankj/utilcode/util/ImageUtils;->save(Landroid/graphics/Bitmap;Ljava/lang/String;Landroid/graphics/Bitmap$CompressFormat;IZ)Z
move-result p0
return p0
.end method
.method public static save(Landroid/graphics/Bitmap;Ljava/lang/String;Landroid/graphics/Bitmap$CompressFormat;I)Z
.locals 1
.line 1673
invoke-static {p1}, Lcom/blankj/utilcode/util/UtilsBridge;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object p1
const/4 v0, 0x0
invoke-static {p0, p1, p2, p3, v0}, Lcom/blankj/utilcode/util/ImageUtils;->save(Landroid/graphics/Bitmap;Ljava/io/File;Landroid/graphics/Bitmap$CompressFormat;IZ)Z
move-result p0
return p0
.end method
.method public static save(Landroid/graphics/Bitmap;Ljava/lang/String;Landroid/graphics/Bitmap$CompressFormat;IZ)Z
.locals 0
.line 1709
invoke-static {p1}, Lcom/blankj/utilcode/util/UtilsBridge;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object p1
invoke-static {p0, p1, p2, p3, p4}, Lcom/blankj/utilcode/util/ImageUtils;->save(Landroid/graphics/Bitmap;Ljava/io/File;Landroid/graphics/Bitmap$CompressFormat;IZ)Z
move-result p0
return p0
.end method
.method public static save(Landroid/graphics/Bitmap;Ljava/lang/String;Landroid/graphics/Bitmap$CompressFormat;Z)Z
.locals 1
const/16 v0, 0x64
.line 1638
invoke-static {p0, p1, p2, v0, p3}, Lcom/blankj/utilcode/util/ImageUtils;->save(Landroid/graphics/Bitmap;Ljava/lang/String;Landroid/graphics/Bitmap$CompressFormat;IZ)Z
move-result p0
return p0
.end method
.method public static save2Album(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap$CompressFormat;)Ljava/io/File;
.locals 3
const-string v0, ""
const/16 v1, 0x64
const/4 v2, 0x0
.line 1770
invoke-static {p0, v0, p1, v1, v2}, Lcom/blankj/utilcode/util/ImageUtils;->save2Album(Landroid/graphics/Bitmap;Ljava/lang/String;Landroid/graphics/Bitmap$CompressFormat;IZ)Ljava/io/File;
move-result-object p0
return-object p0
.end method
.method public static save2Album(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap$CompressFormat;I)Ljava/io/File;
.locals 2
const-string v0, ""
const/4 v1, 0x0
.line 1799
invoke-static {p0, v0, p1, p2, v1}, Lcom/blankj/utilcode/util/ImageUtils;->save2Album(Landroid/graphics/Bitmap;Ljava/lang/String;Landroid/graphics/Bitmap$CompressFormat;IZ)Ljava/io/File;
move-result-object p0
return-object p0
.end method
.method public static save2Album(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap$CompressFormat;IZ)Ljava/io/File;
.locals 1
const-string v0, ""
.line 1817
invoke-static {p0, v0, p1, p2, p3}, Lcom/blankj/utilcode/util/ImageUtils;->save2Album(Landroid/graphics/Bitmap;Ljava/lang/String;Landroid/graphics/Bitmap$CompressFormat;IZ)Ljava/io/File;
move-result-object p0
return-object p0
.end method
.method public static save2Album(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap$CompressFormat;Z)Ljava/io/File;
.locals 2
const-string v0, ""
const/16 v1, 0x64
.line 1783
invoke-static {p0, v0, p1, v1, p2}, Lcom/blankj/utilcode/util/ImageUtils;->save2Album(Landroid/graphics/Bitmap;Ljava/lang/String;Landroid/graphics/Bitmap$CompressFormat;IZ)Ljava/io/File;
move-result-object p0
return-object p0
.end method
.method public static save2Album(Landroid/graphics/Bitmap;Ljava/lang/String;Landroid/graphics/Bitmap$CompressFormat;)Ljava/io/File;
.locals 2
const/16 v0, 0x64
const/4 v1, 0x0
.line 1830
invoke-static {p0, p1, p2, v0, v1}, Lcom/blankj/utilcode/util/ImageUtils;->save2Album(Landroid/graphics/Bitmap;Ljava/lang/String;Landroid/graphics/Bitmap$CompressFormat;IZ)Ljava/io/File;
move-result-object p0
return-object p0
.end method
.method public static save2Album(Landroid/graphics/Bitmap;Ljava/lang/String;Landroid/graphics/Bitmap$CompressFormat;I)Ljava/io/File;
.locals 1
const/4 v0, 0x0
.line 1863
invoke-static {p0, p1, p2, p3, v0}, Lcom/blankj/utilcode/util/ImageUtils;->save2Album(Landroid/graphics/Bitmap;Ljava/lang/String;Landroid/graphics/Bitmap$CompressFormat;IZ)Ljava/io/File;
move-result-object p0
return-object p0
.end method
.method public static save2Album(Landroid/graphics/Bitmap;Ljava/lang/String;Landroid/graphics/Bitmap$CompressFormat;IZ)Ljava/io/File;
.locals 6
.line 1883
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_0
invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application;
move-result-object p1
invoke-virtual {p1}, Landroid/app/Application;->getPackageName()Ljava/lang/String;
move-result-object p1
.line 1884
:cond_0
sget-object v0, Landroid/graphics/Bitmap$CompressFormat;->JPEG:Landroid/graphics/Bitmap$CompressFormat;
invoke-virtual {v0, p2}, Landroid/graphics/Bitmap$CompressFormat;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_1
const-string v0, "JPG"
goto :goto_0
:cond_1
invoke-virtual {p2}, Landroid/graphics/Bitmap$CompressFormat;->name()Ljava/lang/String;
move-result-object v0
.line 1885
:goto_0
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v2
invoke-virtual {v1, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "_"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "."
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 1886
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v2, 0x1d
const-string v3, "/"
const/4 v4, 0x0
if-ge v1, v2, :cond_4
const-string v1, "android.permission.WRITE_EXTERNAL_STORAGE"
.line 1887
filled-new-array {v1}, [Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Lcom/blankj/utilcode/util/UtilsBridge;->isGranted([Ljava/lang/String;)Z
move-result v1
if-nez v1, :cond_2
const-string p0, "ImageUtils"
const-string p1, "save to album need storage permission"
.line 1888
invoke-static {p0, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
return-object v4
.line 1891
:cond_2
sget-object v1, Landroid/os/Environment;->DIRECTORY_DCIM:Ljava/lang/String;
invoke-static {v1}, Landroid/os/Environment;->getExternalStoragePublicDirectory(Ljava/lang/String;)Ljava/io/File;
move-result-object v1
.line 1892
new-instance v2, Ljava/io/File;
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v5, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object p1
invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object p1
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object p1
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v2, v1, p1}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
.line 1893
invoke-static {p0, v2, p2, p3, p4}, Lcom/blankj/utilcode/util/ImageUtils;->save(Landroid/graphics/Bitmap;Ljava/io/File;Landroid/graphics/Bitmap$CompressFormat;IZ)Z
move-result p0
if-nez p0, :cond_3
return-object v4
.line 1896
:cond_3
invoke-static {v2}, Lcom/blankj/utilcode/util/UtilsBridge;->notifySystemToScan(Ljava/io/File;)V
return-object v2
.line 1899
:cond_4
new-instance p4, Landroid/content/ContentValues;
invoke-direct {p4}, Landroid/content/ContentValues;-><init>()V
const-string v1, "_display_name"
.line 1900
invoke-virtual {p4, v1, v0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
const-string v0, "mime_type"
const-string v1, "image/*"
.line 1901
invoke-virtual {p4, v0, v1}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
.line 1903
invoke-static {}, Landroid/os/Environment;->getExternalStorageState()Ljava/lang/String;
move-result-object v0
const-string v1, "mounted"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_5
.line 1904
sget-object v0, Landroid/provider/MediaStore$Images$Media;->EXTERNAL_CONTENT_URI:Landroid/net/Uri;
goto :goto_1
.line 1906
:cond_5
sget-object v0, Landroid/provider/MediaStore$Images$Media;->INTERNAL_CONTENT_URI:Landroid/net/Uri;
.line 1908
:goto_1
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
sget-object v2, Landroid/os/Environment;->DIRECTORY_DCIM:Ljava/lang/String;
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object p1
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
const-string v1, "relative_path"
invoke-virtual {p4, v1, p1}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
const/4 p1, 0x1
.line 1909
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
const-string v1, "is_pending"
invoke-virtual {p4, v1, p1}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
.line 1910
invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application;
move-result-object p1
invoke-virtual {p1}, Landroid/app/Application;->getContentResolver()Landroid/content/ContentResolver;
move-result-object p1
invoke-virtual {p1, v0, p4}, Landroid/content/ContentResolver;->insert(Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri;
move-result-object p1
if-nez p1, :cond_6
return-object v4
.line 1916
:cond_6
:try_start_0
invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application;
move-result-object v0
invoke-virtual {v0}, Landroid/app/Application;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v0
invoke-virtual {v0, p1}, Landroid/content/ContentResolver;->openOutputStream(Landroid/net/Uri;)Ljava/io/OutputStream;
move-result-object v0
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_2
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 1917
:try_start_1
invoke-virtual {p0, p2, p3, v0}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
.line 1919
invoke-virtual {p4}, Landroid/content/ContentValues;->clear()V
const/4 p0, 0x0
.line 1920
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p0
invoke-virtual {p4, v1, p0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
.line 1921
invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application;
move-result-object p0
invoke-virtual {p0}, Landroid/app/Application;->getContentResolver()Landroid/content/ContentResolver;
move-result-object p0
invoke-virtual {p0, p1, p4, v4, v4}, Landroid/content/ContentResolver;->update(Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I
.line 1923
invoke-static {p1}, Lcom/blankj/utilcode/util/UtilsBridge;->uri2File(Landroid/net/Uri;)Ljava/io/File;
move-result-object p0
:try_end_1
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_1
.catchall {:try_start_1 .. :try_end_1} :catchall_1
if-eqz v0, :cond_7
.line 1931
:try_start_2
invoke-virtual {v0}, Ljava/io/OutputStream;->close()V
:try_end_2
.catch Ljava/io/IOException; {:try_start_2 .. :try_end_2} :catch_0
goto :goto_2
:catch_0
move-exception p1
.line 1934
invoke-virtual {p1}, Ljava/io/IOException;->printStackTrace()V
:cond_7
:goto_2
return-object p0
:catch_1
move-exception p0
goto :goto_3
:catchall_0
move-exception p0
goto :goto_5
:catch_2
move-exception p0
move-object v0, v4
.line 1925
:goto_3
:try_start_3
invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application;
move-result-object p2
invoke-virtual {p2}, Landroid/app/Application;->getContentResolver()Landroid/content/ContentResolver;
move-result-object p2
invoke-virtual {p2, p1, v4, v4}, Landroid/content/ContentResolver;->delete(Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I
.line 1926
invoke-virtual {p0}, Ljava/lang/Exception;->printStackTrace()V
:try_end_3
.catchall {:try_start_3 .. :try_end_3} :catchall_1
if-eqz v0, :cond_8
.line 1931
:try_start_4
invoke-virtual {v0}, Ljava/io/OutputStream;->close()V
:try_end_4
.catch Ljava/io/IOException; {:try_start_4 .. :try_end_4} :catch_3
goto :goto_4
:catch_3
move-exception p0
.line 1934
invoke-virtual {p0}, Ljava/io/IOException;->printStackTrace()V
:cond_8
:goto_4
return-object v4
:catchall_1
move-exception p0
move-object v4, v0
:goto_5
if-eqz v4, :cond_9
.line 1931
:try_start_5
invoke-virtual {v4}, Ljava/io/OutputStream;->close()V
:try_end_5
.catch Ljava/io/IOException; {:try_start_5 .. :try_end_5} :catch_4
goto :goto_6
:catch_4
move-exception p1
.line 1934
invoke-virtual {p1}, Ljava/io/IOException;->printStackTrace()V
.line 1936
:cond_9
:goto_6
throw p0
.end method
.method public static save2Album(Landroid/graphics/Bitmap;Ljava/lang/String;Landroid/graphics/Bitmap$CompressFormat;Z)Ljava/io/File;
.locals 1
const/16 v0, 0x64
.line 1845
invoke-static {p0, p1, p2, v0, p3}, Lcom/blankj/utilcode/util/ImageUtils;->save2Album(Landroid/graphics/Bitmap;Ljava/lang/String;Landroid/graphics/Bitmap$CompressFormat;IZ)Ljava/io/File;
move-result-object p0
return-object p0
.end method
.method public static scale(Landroid/graphics/Bitmap;FF)Landroid/graphics/Bitmap;
.locals 1
const/4 v0, 0x0
.line 480
invoke-static {p0, p1, p2, v0}, Lcom/blankj/utilcode/util/ImageUtils;->scale(Landroid/graphics/Bitmap;FFZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static scale(Landroid/graphics/Bitmap;FFZ)Landroid/graphics/Bitmap;
.locals 7
.line 496
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_0
const/4 p0, 0x0
return-object p0
.line 497
:cond_0
new-instance v5, Landroid/graphics/Matrix;
invoke-direct {v5}, Landroid/graphics/Matrix;-><init>()V
.line 498
invoke-virtual {v5, p1, p2}, Landroid/graphics/Matrix;->setScale(FF)V
const/4 v1, 0x0
const/4 v2, 0x0
.line 499
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v3
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v4
const/4 v6, 0x1
move-object v0, p0
invoke-static/range {v0 .. v6}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap;
move-result-object p1
if-eqz p3, :cond_1
.line 500
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result p2
if-nez p2, :cond_1
if-eq p1, p0, :cond_1
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
:cond_1
return-object p1
.end method
.method public static scale(Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap;
.locals 1
const/4 v0, 0x0
.line 449
invoke-static {p0, p1, p2, v0}, Lcom/blankj/utilcode/util/ImageUtils;->scale(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static scale(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
.locals 1
.line 465
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_0
const/4 p0, 0x0
return-object p0
:cond_0
const/4 v0, 0x1
.line 466
invoke-static {p0, p1, p2, v0}, Landroid/graphics/Bitmap;->createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
move-result-object p1
if-eqz p3, :cond_1
.line 467
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result p2
if-nez p2, :cond_1
if-eq p1, p0, :cond_1
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
:cond_1
return-object p1
.end method
.method public static skew(Landroid/graphics/Bitmap;FF)Landroid/graphics/Bitmap;
.locals 6
const/4 v3, 0x0
const/4 v4, 0x0
const/4 v5, 0x0
move-object v0, p0
move v1, p1
move v2, p2
.line 554
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/ImageUtils;->skew(Landroid/graphics/Bitmap;FFFFZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static skew(Landroid/graphics/Bitmap;FFFF)Landroid/graphics/Bitmap;
.locals 6
const/4 v5, 0x0
move-object v0, p0
move v1, p1
move v2, p2
move v3, p3
move v4, p4
.line 588
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/ImageUtils;->skew(Landroid/graphics/Bitmap;FFFFZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static skew(Landroid/graphics/Bitmap;FFFFZ)Landroid/graphics/Bitmap;
.locals 7
.line 608
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_0
const/4 p0, 0x0
return-object p0
.line 609
:cond_0
new-instance v5, Landroid/graphics/Matrix;
invoke-direct {v5}, Landroid/graphics/Matrix;-><init>()V
.line 610
invoke-virtual {v5, p1, p2, p3, p4}, Landroid/graphics/Matrix;->setSkew(FFFF)V
const/4 v1, 0x0
const/4 v2, 0x0
.line 611
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v3
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v4
const/4 v6, 0x1
move-object v0, p0
invoke-static/range {v0 .. v6}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap;
move-result-object p1
if-eqz p5, :cond_1
.line 612
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result p2
if-nez p2, :cond_1
if-eq p1, p0, :cond_1
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
:cond_1
return-object p1
.end method
.method public static skew(Landroid/graphics/Bitmap;FFZ)Landroid/graphics/Bitmap;
.locals 6
const/4 v3, 0x0
const/4 v4, 0x0
move-object v0, p0
move v1, p1
move v2, p2
move v5, p3
.line 570
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/ImageUtils;->skew(Landroid/graphics/Bitmap;FFFFZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static stackBlur(Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap;
.locals 1
const/4 v0, 0x0
.line 1391
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/ImageUtils;->stackBlur(Landroid/graphics/Bitmap;IZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static stackBlur(Landroid/graphics/Bitmap;IZ)Landroid/graphics/Bitmap;
.locals 35
const/4 v0, 0x1
if-eqz p2, :cond_0
move-object/from16 v1, p0
goto :goto_0
.line 1403
:cond_0
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getConfig()Landroid/graphics/Bitmap$Config;
move-result-object v1
move-object/from16 v2, p0
invoke-virtual {v2, v1, v0}, Landroid/graphics/Bitmap;->copy(Landroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap;
move-result-object v1
:goto_0
move/from16 v2, p1
if-ge v2, v0, :cond_1
move v10, v0
goto :goto_1
:cond_1
move v10, v2
.line 1407
:goto_1
invoke-virtual {v1}, Landroid/graphics/Bitmap;->getWidth()I
move-result v11
.line 1408
invoke-virtual {v1}, Landroid/graphics/Bitmap;->getHeight()I
move-result v12
mul-int v13, v11, v12
.line 1410
new-array v14, v13, [I
const/4 v4, 0x0
const/4 v6, 0x0
const/4 v7, 0x0
move-object v2, v1
move-object v3, v14
move v5, v11
move v8, v11
move v9, v12
.line 1411
invoke-virtual/range {v2 .. v9}, Landroid/graphics/Bitmap;->getPixels([IIIIIII)V
add-int/lit8 v2, v11, -0x1
add-int/lit8 v3, v12, -0x1
add-int v4, v10, v10
add-int/2addr v4, v0
.line 1418
new-array v5, v13, [I
.line 1419
new-array v6, v13, [I
.line 1420
new-array v7, v13, [I
.line 1422
invoke-static {v11, v12}, Ljava/lang/Math;->max(II)I
move-result v8
new-array v8, v8, [I
add-int/lit8 v9, v4, 0x1
shr-int/2addr v9, v0
mul-int/2addr v9, v9
mul-int/lit16 v13, v9, 0x100
.line 1426
new-array v15, v13, [I
const/4 v0, 0x0
:goto_2
if-ge v0, v13, :cond_2
.line 1428
div-int v17, v0, v9
aput v17, v15, v0
add-int/lit8 v0, v0, 0x1
goto :goto_2
:cond_2
const/4 v0, 0x3
const/4 v9, 0x2
new-array v13, v9, [I
const/16 v16, 0x1
aput v0, v13, v16
const/4 v0, 0x0
aput v4, v13, v0
.line 1433
const-class v0, I
invoke-static {v0, v13}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;
move-result-object v0
check-cast v0, [[I
add-int/lit8 v13, v10, 0x1
const/4 v9, 0x0
const/16 v17, 0x0
const/16 v18, 0x0
:goto_3
if-ge v9, v12, :cond_7
move-object/from16 p2, v1
neg-int v1, v10
move/from16 v27, v12
const/16 v19, 0x0
const/16 v20, 0x0
const/16 v21, 0x0
const/16 v22, 0x0
const/16 v23, 0x0
const/16 v24, 0x0
const/16 v25, 0x0
const/16 v26, 0x0
move v12, v1
const/4 v1, 0x0
:goto_4
const v28, 0xff00
const/high16 v29, 0xff0000
if-gt v12, v10, :cond_4
move/from16 v30, v3
move-object/from16 v31, v8
const/4 v3, 0x0
.line 1445
invoke-static {v12, v3}, Ljava/lang/Math;->max(II)I
move-result v8
invoke-static {v2, v8}, Ljava/lang/Math;->min(II)I
move-result v8
add-int v8, v17, v8
aget v8, v14, v8
add-int v32, v12, v10
.line 1446
aget-object v32, v0, v32
and-int v29, v8, v29
shr-int/lit8 v29, v29, 0x10
.line 1447
aput v29, v32, v3
and-int v28, v8, v28
shr-int/lit8 v28, v28, 0x8
const/16 v16, 0x1
.line 1448
aput v28, v32, v16
and-int/lit16 v8, v8, 0xff
const/16 v28, 0x2
.line 1449
aput v8, v32, v28
.line 1450
invoke-static {v12}, Ljava/lang/Math;->abs(I)I
move-result v8
sub-int v8, v13, v8
.line 1451
aget v29, v32, v3
mul-int v29, v29, v8
add-int v1, v1, v29
.line 1452
aget v29, v32, v16
mul-int v29, v29, v8
add-int v19, v19, v29
.line 1453
aget v29, v32, v28
mul-int v29, v29, v8
add-int v20, v20, v29
if-lez v12, :cond_3
.line 1455
aget v8, v32, v3
add-int v24, v24, v8
.line 1456
aget v8, v32, v16
add-int v25, v25, v8
.line 1457
aget v8, v32, v28
add-int v26, v26, v8
goto :goto_5
.line 1459
:cond_3
aget v8, v32, v3
add-int v21, v21, v8
.line 1460
aget v3, v32, v16
add-int v22, v22, v3
.line 1461
aget v3, v32, v28
add-int v23, v23, v3
:goto_5
add-int/lit8 v12, v12, 0x1
move/from16 v3, v30
move-object/from16 v8, v31
goto :goto_4
:cond_4
move/from16 v30, v3
move-object/from16 v31, v8
move v3, v1
move v8, v10
const/4 v1, 0x0
:goto_6
if-ge v1, v11, :cond_6
.line 1468
aget v12, v15, v3
aput v12, v5, v17
.line 1469
aget v12, v15, v19
aput v12, v6, v17
.line 1470
aget v12, v15, v20
aput v12, v7, v17
sub-int v3, v3, v21
sub-int v19, v19, v22
sub-int v20, v20, v23
sub-int v12, v8, v10
add-int/2addr v12, v4
.line 1477
rem-int/2addr v12, v4
aget-object v12, v0, v12
const/16 v32, 0x0
.line 1479
aget v33, v12, v32
sub-int v21, v21, v33
const/16 v16, 0x1
.line 1480
aget v32, v12, v16
sub-int v22, v22, v32
const/16 v32, 0x2
.line 1481
aget v33, v12, v32
sub-int v23, v23, v33
if-nez v9, :cond_5
add-int v32, v1, v10
move-object/from16 v33, v15
add-int/lit8 v15, v32, 0x1
.line 1484
invoke-static {v15, v2}, Ljava/lang/Math;->min(II)I
move-result v15
aput v15, v31, v1
goto :goto_7
:cond_5
move-object/from16 v33, v15
.line 1486
:goto_7
aget v15, v31, v1
add-int v15, v18, v15
aget v15, v14, v15
and-int v32, v15, v29
shr-int/lit8 v32, v32, 0x10
const/16 v34, 0x0
.line 1488
aput v32, v12, v34
and-int v32, v15, v28
shr-int/lit8 v32, v32, 0x8
const/16 v16, 0x1
.line 1489
aput v32, v12, v16
and-int/lit16 v15, v15, 0xff
const/16 v32, 0x2
.line 1490
aput v15, v12, v32
.line 1492
aget v15, v12, v34
add-int v24, v24, v15
.line 1493
aget v15, v12, v16
add-int v25, v25, v15
.line 1494
aget v12, v12, v32
add-int v26, v26, v12
add-int v3, v3, v24
add-int v19, v19, v25
add-int v20, v20, v26
add-int/lit8 v8, v8, 0x1
.line 1500
rem-int/2addr v8, v4
.line 1501
rem-int v12, v8, v4
aget-object v12, v0, v12
const/4 v15, 0x0
.line 1503
aget v32, v12, v15
add-int v21, v21, v32
const/16 v16, 0x1
.line 1504
aget v32, v12, v16
add-int v22, v22, v32
const/16 v32, 0x2
.line 1505
aget v34, v12, v32
add-int v23, v23, v34
.line 1507
aget v34, v12, v15
sub-int v24, v24, v34
.line 1508
aget v15, v12, v16
sub-int v25, v25, v15
.line 1509
aget v12, v12, v32
sub-int v26, v26, v12
add-int/lit8 v17, v17, 0x1
add-int/lit8 v1, v1, 0x1
move-object/from16 v15, v33
goto/16 :goto_6
:cond_6
move-object/from16 v33, v15
add-int v18, v18, v11
add-int/lit8 v9, v9, 0x1
move-object/from16 v1, p2
move/from16 v12, v27
move/from16 v3, v30
move-object/from16 v8, v31
goto/16 :goto_3
:cond_7
move-object/from16 p2, v1
move/from16 v30, v3
move-object/from16 v31, v8
move/from16 v27, v12
move-object/from16 v33, v15
const/4 v1, 0x0
:goto_8
if-ge v1, v11, :cond_d
neg-int v2, v10
mul-int v3, v2, v11
move/from16 v20, v4
move-object/from16 v21, v14
const/4 v8, 0x0
const/4 v9, 0x0
const/4 v12, 0x0
const/4 v15, 0x0
const/16 v17, 0x0
const/16 v18, 0x0
const/16 v19, 0x0
move v4, v2
move v14, v3
const/4 v2, 0x0
const/4 v3, 0x0
:goto_9
if-gt v4, v10, :cond_a
move/from16 v22, v11
const/4 v11, 0x0
.line 1519
invoke-static {v11, v14}, Ljava/lang/Math;->max(II)I
move-result v23
add-int v23, v23, v1
add-int v24, v4, v10
.line 1521
aget-object v24, v0, v24
.line 1523
aget v25, v5, v23
aput v25, v24, v11
.line 1524
aget v11, v6, v23
const/16 v16, 0x1
aput v11, v24, v16
.line 1525
aget v11, v7, v23
const/16 v25, 0x2
aput v11, v24, v25
.line 1527
invoke-static {v4}, Ljava/lang/Math;->abs(I)I
move-result v11
sub-int v11, v13, v11
.line 1529
aget v25, v5, v23
mul-int v25, v25, v11
add-int v2, v2, v25
.line 1530
aget v25, v6, v23
mul-int v25, v25, v11
add-int v3, v3, v25
.line 1531
aget v23, v7, v23
mul-int v23, v23, v11
add-int v8, v8, v23
if-lez v4, :cond_8
const/4 v11, 0x0
.line 1534
aget v23, v24, v11
add-int v17, v17, v23
const/16 v16, 0x1
.line 1535
aget v23, v24, v16
add-int v18, v18, v23
const/16 v23, 0x2
.line 1536
aget v24, v24, v23
add-int v19, v19, v24
goto :goto_a
:cond_8
const/4 v11, 0x0
const/16 v16, 0x1
const/16 v23, 0x2
.line 1538
aget v25, v24, v11
add-int v9, v9, v25
.line 1539
aget v11, v24, v16
add-int/2addr v12, v11
.line 1540
aget v11, v24, v23
add-int/2addr v15, v11
:goto_a
move/from16 v11, v30
if-ge v4, v11, :cond_9
add-int v14, v14, v22
:cond_9
add-int/lit8 v4, v4, 0x1
move/from16 v30, v11
move/from16 v11, v22
goto :goto_9
:cond_a
move/from16 v22, v11
move/from16 v11, v30
move/from16 v23, v1
move v4, v3
move/from16 v24, v10
move/from16 v14, v27
move v3, v2
const/4 v2, 0x0
:goto_b
if-ge v2, v14, :cond_c
const/high16 v25, -0x1000000
.line 1551
aget v26, v21, v23
and-int v25, v26, v25
aget v26, v33, v3
shl-int/lit8 v26, v26, 0x10
or-int v25, v25, v26
aget v26, v33, v4
shl-int/lit8 v26, v26, 0x8
or-int v25, v25, v26
aget v26, v33, v8
or-int v25, v25, v26
aput v25, v21, v23
sub-int/2addr v3, v9
sub-int/2addr v4, v12
sub-int/2addr v8, v15
sub-int v25, v24, v10
add-int v25, v25, v20
.line 1558
rem-int v25, v25, v20
aget-object v25, v0, v25
const/16 v26, 0x0
.line 1560
aget v27, v25, v26
sub-int v9, v9, v27
const/16 v16, 0x1
.line 1561
aget v26, v25, v16
sub-int v12, v12, v26
const/16 v26, 0x2
.line 1562
aget v27, v25, v26
sub-int v15, v15, v27
move/from16 v26, v10
if-nez v1, :cond_b
add-int v10, v2, v13
.line 1565
invoke-static {v10, v11}, Ljava/lang/Math;->min(II)I
move-result v10
mul-int v10, v10, v22
aput v10, v31, v2
.line 1567
:cond_b
aget v10, v31, v2
add-int/2addr v10, v1
.line 1569
aget v27, v5, v10
const/16 v28, 0x0
aput v27, v25, v28
.line 1570
aget v27, v6, v10
const/16 v16, 0x1
aput v27, v25, v16
.line 1571
aget v10, v7, v10
const/16 v27, 0x2
aput v10, v25, v27
.line 1573
aget v10, v25, v28
add-int v17, v17, v10
.line 1574
aget v10, v25, v16
add-int v18, v18, v10
.line 1575
aget v10, v25, v27
add-int v19, v19, v10
add-int v3, v3, v17
add-int v4, v4, v18
add-int v8, v8, v19
add-int/lit8 v24, v24, 0x1
.line 1581
rem-int v24, v24, v20
.line 1582
aget-object v10, v0, v24
const/16 v25, 0x0
.line 1584
aget v27, v10, v25
add-int v9, v9, v27
const/16 v16, 0x1
.line 1585
aget v27, v10, v16
add-int v12, v12, v27
const/16 v27, 0x2
.line 1586
aget v28, v10, v27
add-int v15, v15, v28
.line 1588
aget v28, v10, v25
sub-int v17, v17, v28
.line 1589
aget v28, v10, v16
sub-int v18, v18, v28
.line 1590
aget v10, v10, v27
sub-int v19, v19, v10
add-int v23, v23, v22
add-int/lit8 v2, v2, 0x1
move/from16 v10, v26
goto/16 :goto_b
:cond_c
move/from16 v26, v10
const/16 v16, 0x1
const/16 v25, 0x0
const/16 v27, 0x2
add-int/lit8 v1, v1, 0x1
move/from16 v30, v11
move/from16 v27, v14
move/from16 v4, v20
move-object/from16 v14, v21
move/from16 v11, v22
goto/16 :goto_8
:cond_d
move/from16 v22, v11
move-object/from16 v21, v14
move/from16 v14, v27
const/4 v4, 0x0
const/4 v6, 0x0
const/4 v7, 0x0
move-object/from16 v2, p2
move-object/from16 v3, v21
move/from16 v5, v22
move/from16 v8, v22
move v9, v14
.line 1595
invoke-virtual/range {v2 .. v9}, Landroid/graphics/Bitmap;->setPixels([IIIIIII)V
return-object p2
.end method
.method public static toAlpha(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;
.locals 1
const/4 v0, 0x0
.line 1195
invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v0
invoke-static {p0, v0}, Lcom/blankj/utilcode/util/ImageUtils;->toAlpha(Landroid/graphics/Bitmap;Ljava/lang/Boolean;)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static toAlpha(Landroid/graphics/Bitmap;Ljava/lang/Boolean;)Landroid/graphics/Bitmap;
.locals 1
.line 1206
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_0
const/4 p0, 0x0
return-object p0
.line 1207
:cond_0
invoke-virtual {p0}, Landroid/graphics/Bitmap;->extractAlpha()Landroid/graphics/Bitmap;
move-result-object v0
.line 1208
invoke-virtual {p1}, Ljava/lang/Boolean;->booleanValue()Z
move-result p1
if-eqz p1, :cond_1
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result p1
if-nez p1, :cond_1
if-eq v0, p0, :cond_1
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
:cond_1
return-object v0
.end method
.method public static toGray(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;
.locals 1
const/4 v0, 0x0
.line 1219
invoke-static {p0, v0}, Lcom/blankj/utilcode/util/ImageUtils;->toGray(Landroid/graphics/Bitmap;Z)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static toGray(Landroid/graphics/Bitmap;Z)Landroid/graphics/Bitmap;
.locals 6
.line 1230
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_0
const/4 p0, 0x0
return-object p0
.line 1231
:cond_0
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v0
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v1
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getConfig()Landroid/graphics/Bitmap$Config;
move-result-object v2
invoke-static {v0, v1, v2}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v0
.line 1232
new-instance v1, Landroid/graphics/Canvas;
invoke-direct {v1, v0}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
.line 1233
new-instance v2, Landroid/graphics/Paint;
invoke-direct {v2}, Landroid/graphics/Paint;-><init>()V
.line 1234
new-instance v3, Landroid/graphics/ColorMatrix;
invoke-direct {v3}, Landroid/graphics/ColorMatrix;-><init>()V
const/4 v4, 0x0
.line 1235
invoke-virtual {v3, v4}, Landroid/graphics/ColorMatrix;->setSaturation(F)V
.line 1236
new-instance v5, Landroid/graphics/ColorMatrixColorFilter;
invoke-direct {v5, v3}, Landroid/graphics/ColorMatrixColorFilter;-><init>(Landroid/graphics/ColorMatrix;)V
.line 1237
invoke-virtual {v2, v5}, Landroid/graphics/Paint;->setColorFilter(Landroid/graphics/ColorFilter;)Landroid/graphics/ColorFilter;
.line 1238
invoke-virtual {v1, p0, v4, v4, v2}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V
if-eqz p1, :cond_1
.line 1239
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result p1
if-nez p1, :cond_1
if-eq v0, p0, :cond_1
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
:cond_1
return-object v0
.end method
.method public static toRound(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;
.locals 1
const/4 v0, 0x0
.line 692
invoke-static {p0, v0, v0, v0}, Lcom/blankj/utilcode/util/ImageUtils;->toRound(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static toRound(Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap;
.locals 1
const/4 v0, 0x0
.line 717
invoke-static {p0, p1, p2, v0}, Lcom/blankj/utilcode/util/ImageUtils;->toRound(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static toRound(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
.locals 16
move-object/from16 v0, p0
move/from16 v1, p1
.line 733
invoke-static/range {p0 .. p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v2
const/4 v3, 0x0
if-eqz v2, :cond_0
return-object v3
.line 734
:cond_0
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v2
.line 735
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v4
.line 736
invoke-static {v2, v4}, Ljava/lang/Math;->min(II)I
move-result v5
.line 737
new-instance v6, Landroid/graphics/Paint;
const/4 v7, 0x1
invoke-direct {v6, v7}, Landroid/graphics/Paint;-><init>(I)V
.line 738
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getConfig()Landroid/graphics/Bitmap$Config;
move-result-object v7
invoke-static {v2, v4, v7}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v7
int-to-float v8, v5
const/high16 v9, 0x40000000 # 2.0f
div-float v10, v8, v9
.line 740
new-instance v11, Landroid/graphics/RectF;
int-to-float v12, v2
int-to-float v13, v4
const/4 v14, 0x0
invoke-direct {v11, v14, v14, v12, v13}, Landroid/graphics/RectF;-><init>(FFFF)V
sub-int v14, v2, v5
int-to-float v14, v14
div-float/2addr v14, v9
sub-int v5, v4, v5
int-to-float v5, v5
div-float/2addr v5, v9
.line 741
invoke-virtual {v11, v14, v5}, Landroid/graphics/RectF;->inset(FF)V
.line 742
new-instance v5, Landroid/graphics/Matrix;
invoke-direct {v5}, Landroid/graphics/Matrix;-><init>()V
.line 743
iget v14, v11, Landroid/graphics/RectF;->left:F
iget v15, v11, Landroid/graphics/RectF;->top:F
invoke-virtual {v5, v14, v15}, Landroid/graphics/Matrix;->setTranslate(FF)V
if-eq v2, v4, :cond_1
div-float v2, v8, v12
div-float/2addr v8, v13
.line 745
invoke-virtual {v5, v2, v8}, Landroid/graphics/Matrix;->preScale(FF)Z
.line 747
:cond_1
new-instance v2, Landroid/graphics/BitmapShader;
sget-object v4, Landroid/graphics/Shader$TileMode;->CLAMP:Landroid/graphics/Shader$TileMode;
sget-object v8, Landroid/graphics/Shader$TileMode;->CLAMP:Landroid/graphics/Shader$TileMode;
invoke-direct {v2, v0, v4, v8}, Landroid/graphics/BitmapShader;-><init>(Landroid/graphics/Bitmap;Landroid/graphics/Shader$TileMode;Landroid/graphics/Shader$TileMode;)V
.line 748
invoke-virtual {v2, v5}, Landroid/graphics/BitmapShader;->setLocalMatrix(Landroid/graphics/Matrix;)V
.line 749
invoke-virtual {v6, v2}, Landroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader;
.line 750
new-instance v2, Landroid/graphics/Canvas;
invoke-direct {v2, v7}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
.line 751
invoke-virtual {v2, v11, v10, v10, v6}, Landroid/graphics/Canvas;->drawRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Paint;)V
if-lez v1, :cond_2
.line 753
invoke-virtual {v6, v3}, Landroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader;
move/from16 v3, p2
.line 754
invoke-virtual {v6, v3}, Landroid/graphics/Paint;->setColor(I)V
.line 755
sget-object v3, Landroid/graphics/Paint$Style;->STROKE:Landroid/graphics/Paint$Style;
invoke-virtual {v6, v3}, Landroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V
int-to-float v1, v1
.line 756
invoke-virtual {v6, v1}, Landroid/graphics/Paint;->setStrokeWidth(F)V
div-float/2addr v1, v9
sub-float/2addr v10, v1
div-float/2addr v12, v9
div-float/2addr v13, v9
.line 758
invoke-virtual {v2, v12, v13, v10, v6}, Landroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V
:cond_2
if-eqz p3, :cond_3
.line 760
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v1
if-nez v1, :cond_3
if-eq v7, v0, :cond_3
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->recycle()V
:cond_3
return-object v7
.end method
.method public static toRound(Landroid/graphics/Bitmap;Z)Landroid/graphics/Bitmap;
.locals 1
const/4 v0, 0x0
.line 703
invoke-static {p0, v0, v0, p1}, Lcom/blankj/utilcode/util/ImageUtils;->toRound(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static toRoundCorner(Landroid/graphics/Bitmap;F)Landroid/graphics/Bitmap;
.locals 2
const/4 v0, 0x0
const/4 v1, 0x0
.line 772
invoke-static {p0, p1, v0, v1, v1}, Lcom/blankj/utilcode/util/ImageUtils;->toRoundCorner(Landroid/graphics/Bitmap;FFIZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static toRoundCorner(Landroid/graphics/Bitmap;FFI)Landroid/graphics/Bitmap;
.locals 1
const/4 v0, 0x0
.line 802
invoke-static {p0, p1, p2, p3, v0}, Lcom/blankj/utilcode/util/ImageUtils;->toRoundCorner(Landroid/graphics/Bitmap;FFIZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static toRoundCorner(Landroid/graphics/Bitmap;FFIZ)Landroid/graphics/Bitmap;
.locals 2
const/16 v0, 0x8
new-array v0, v0, [F
const/4 v1, 0x0
aput p1, v0, v1
const/4 v1, 0x1
aput p1, v0, v1
const/4 v1, 0x2
aput p1, v0, v1
const/4 v1, 0x3
aput p1, v0, v1
const/4 v1, 0x4
aput p1, v0, v1
const/4 v1, 0x5
aput p1, v0, v1
const/4 v1, 0x6
aput p1, v0, v1
const/4 v1, 0x7
aput p1, v0, v1
.line 837
invoke-static {p0, v0, p2, p3, p4}, Lcom/blankj/utilcode/util/ImageUtils;->toRoundCorner(Landroid/graphics/Bitmap;[FFIZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static toRoundCorner(Landroid/graphics/Bitmap;FZ)Landroid/graphics/Bitmap;
.locals 2
const/4 v0, 0x0
const/4 v1, 0x0
.line 786
invoke-static {p0, p1, v0, v1, p2}, Lcom/blankj/utilcode/util/ImageUtils;->toRoundCorner(Landroid/graphics/Bitmap;FFIZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static toRoundCorner(Landroid/graphics/Bitmap;[FFI)Landroid/graphics/Bitmap;
.locals 1
const/4 v0, 0x0
.line 818
invoke-static {p0, p1, p2, p3, v0}, Lcom/blankj/utilcode/util/ImageUtils;->toRoundCorner(Landroid/graphics/Bitmap;[FFIZ)Landroid/graphics/Bitmap;
move-result-object p0
return-object p0
.end method
.method public static toRoundCorner(Landroid/graphics/Bitmap;[FFIZ)Landroid/graphics/Bitmap;
.locals 8
.line 855
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
const/4 v1, 0x0
if-eqz v0, :cond_0
return-object v1
.line 856
:cond_0
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v0
.line 857
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v2
.line 858
new-instance v3, Landroid/graphics/Paint;
const/4 v4, 0x1
invoke-direct {v3, v4}, Landroid/graphics/Paint;-><init>(I)V
.line 859
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getConfig()Landroid/graphics/Bitmap$Config;
move-result-object v4
invoke-static {v0, v2, v4}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v4
.line 860
new-instance v5, Landroid/graphics/BitmapShader;
sget-object v6, Landroid/graphics/Shader$TileMode;->CLAMP:Landroid/graphics/Shader$TileMode;
sget-object v7, Landroid/graphics/Shader$TileMode;->CLAMP:Landroid/graphics/Shader$TileMode;
invoke-direct {v5, p0, v6, v7}, Landroid/graphics/BitmapShader;-><init>(Landroid/graphics/Bitmap;Landroid/graphics/Shader$TileMode;Landroid/graphics/Shader$TileMode;)V
.line 861
invoke-virtual {v3, v5}, Landroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader;
.line 862
new-instance v5, Landroid/graphics/Canvas;
invoke-direct {v5, v4}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
.line 863
new-instance v6, Landroid/graphics/RectF;
int-to-float v0, v0
int-to-float v2, v2
const/4 v7, 0x0
invoke-direct {v6, v7, v7, v0, v2}, Landroid/graphics/RectF;-><init>(FFFF)V
const/high16 v0, 0x40000000 # 2.0f
div-float v0, p2, v0
.line 865
invoke-virtual {v6, v0, v0}, Landroid/graphics/RectF;->inset(FF)V
.line 866
new-instance v0, Landroid/graphics/Path;
invoke-direct {v0}, Landroid/graphics/Path;-><init>()V
.line 867
sget-object v2, Landroid/graphics/Path$Direction;->CW:Landroid/graphics/Path$Direction;
invoke-virtual {v0, v6, p1, v2}, Landroid/graphics/Path;->addRoundRect(Landroid/graphics/RectF;[FLandroid/graphics/Path$Direction;)V
.line 868
invoke-virtual {v5, v0, v3}, Landroid/graphics/Canvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V
cmpl-float p1, p2, v7
if-lez p1, :cond_1
.line 870
invoke-virtual {v3, v1}, Landroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader;
.line 871
invoke-virtual {v3, p3}, Landroid/graphics/Paint;->setColor(I)V
.line 872
sget-object p1, Landroid/graphics/Paint$Style;->STROKE:Landroid/graphics/Paint$Style;
invoke-virtual {v3, p1}, Landroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V
.line 873
invoke-virtual {v3, p2}, Landroid/graphics/Paint;->setStrokeWidth(F)V
.line 874
sget-object p1, Landroid/graphics/Paint$Cap;->ROUND:Landroid/graphics/Paint$Cap;
invoke-virtual {v3, p1}, Landroid/graphics/Paint;->setStrokeCap(Landroid/graphics/Paint$Cap;)V
.line 875
invoke-virtual {v5, v0, v3}, Landroid/graphics/Canvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V
:cond_1
if-eqz p4, :cond_2
.line 877
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result p1
if-nez p1, :cond_2
if-eq v4, p0, :cond_2
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
:cond_2
return-object v4
.end method
.method public static view2Bitmap(Landroid/view/View;)Landroid/graphics/Bitmap;
.locals 5
if-nez p0, :cond_0
const/4 p0, 0x0
return-object p0
.line 191
:cond_0
invoke-virtual {p0}, Landroid/view/View;->isDrawingCacheEnabled()Z
move-result v0
.line 192
invoke-virtual {p0}, Landroid/view/View;->willNotCacheDrawing()Z
move-result v1
const/4 v2, 0x1
.line 193
invoke-virtual {p0, v2}, Landroid/view/View;->setDrawingCacheEnabled(Z)V
const/4 v2, 0x0
.line 194
invoke-virtual {p0, v2}, Landroid/view/View;->setWillNotCacheDrawing(Z)V
.line 195
invoke-virtual {p0}, Landroid/view/View;->getDrawingCache()Landroid/graphics/Bitmap;
move-result-object v3
if-eqz v3, :cond_2
.line 197
invoke-virtual {v3}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v4
if-eqz v4, :cond_1
goto :goto_0
.line 211
:cond_1
invoke-static {v3}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;
move-result-object v2
goto :goto_2
.line 198
:cond_2
:goto_0
invoke-static {v2, v2}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
move-result v3
.line 199
invoke-static {v2, v2}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
move-result v4
.line 198
invoke-virtual {p0, v3, v4}, Landroid/view/View;->measure(II)V
.line 200
invoke-virtual {p0}, Landroid/view/View;->getMeasuredWidth()I
move-result v3
invoke-virtual {p0}, Landroid/view/View;->getMeasuredHeight()I
move-result v4
invoke-virtual {p0, v2, v2, v3, v4}, Landroid/view/View;->layout(IIII)V
.line 201
invoke-virtual {p0}, Landroid/view/View;->buildDrawingCache()V
.line 202
invoke-virtual {p0}, Landroid/view/View;->getDrawingCache()Landroid/graphics/Bitmap;
move-result-object v2
if-eqz v2, :cond_4
.line 203
invoke-virtual {v2}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v3
if-eqz v3, :cond_3
goto :goto_1
.line 208
:cond_3
invoke-static {v2}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;
move-result-object v2
goto :goto_2
.line 204
:cond_4
:goto_1
invoke-virtual {p0}, Landroid/view/View;->getMeasuredWidth()I
move-result v2
invoke-virtual {p0}, Landroid/view/View;->getMeasuredHeight()I
move-result v3
sget-object v4, Landroid/graphics/Bitmap$Config;->RGB_565:Landroid/graphics/Bitmap$Config;
invoke-static {v2, v3, v4}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v2
.line 205
new-instance v3, Landroid/graphics/Canvas;
invoke-direct {v3, v2}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
.line 206
invoke-virtual {p0, v3}, Landroid/view/View;->draw(Landroid/graphics/Canvas;)V
.line 213
:goto_2
invoke-virtual {p0, v1}, Landroid/view/View;->setWillNotCacheDrawing(Z)V
.line 214
invoke-virtual {p0, v0}, Landroid/view/View;->setDrawingCacheEnabled(Z)V
return-object v2
.end method