ImageUtils.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
# static fields
.field private static final hexDigits:[C
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 1637
const/16 v0, 0x10
new-array v0, v0, [C
fill-array-data v0, :array_a
sput-object v0, Lcom/blankj/utilcode/util/ImageUtils;->hexDigits:[C
return-void
:array_a
.array-data 2
0x30s
0x31s
0x32s
0x33s
0x34s
0x35s
0x36s
0x37s
0x38s
0x39s
0x41s
0x42s
0x43s
0x44s
0x45s
0x46s
.end array-data
.end method
.method private constructor <init>()V
.registers 3
.line 59
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 60
new-instance v0, Ljava/lang/UnsupportedOperationException;
const-string/jumbo 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;IIZFZ)Landroid/graphics/Bitmap;
.registers 20
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "borderSize" # I
.param p2, "color" # I
.param p3, "isCircle" # Z
.param p4, "cornerRadius" # F
.param p5, "recycle" # Z
.line 881
move v0, p1
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v1
if-eqz v1, :cond_9
const/4 v1, 0x0
return-object v1
.line 882
:cond_9
const/4 v1, 0x1
if-eqz p5, :cond_f
move-object v2, p0
move-object v3, v2
goto :goto_18
:cond_f
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getConfig()Landroid/graphics/Bitmap$Config;
move-result-object v2
move-object v3, p0
invoke-virtual {p0, v2, v1}, Landroid/graphics/Bitmap;->copy(Landroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap;
move-result-object v2
.line 883
.local v2, "ret":Landroid/graphics/Bitmap;
:goto_18
invoke-virtual {v2}, Landroid/graphics/Bitmap;->getWidth()I
move-result v4
.line 884
.local v4, "width":I
invoke-virtual {v2}, Landroid/graphics/Bitmap;->getHeight()I
move-result v5
.line 885
.local v5, "height":I
new-instance v6, Landroid/graphics/Canvas;
invoke-direct {v6, v2}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
.line 886
.local v6, "canvas":Landroid/graphics/Canvas;
new-instance v7, Landroid/graphics/Paint;
invoke-direct {v7, v1}, Landroid/graphics/Paint;-><init>(I)V
move-object v1, v7
.line 887
.local v1, "paint":Landroid/graphics/Paint;
move/from16 v7, p2
invoke-virtual {v1, v7}, Landroid/graphics/Paint;->setColor(I)V
.line 888
sget-object v8, Landroid/graphics/Paint$Style;->STROKE:Landroid/graphics/Paint$Style;
invoke-virtual {v1, v8}, Landroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V
.line 889
int-to-float v8, v0
invoke-virtual {v1, v8}, Landroid/graphics/Paint;->setStrokeWidth(F)V
.line 890
if-eqz p3, :cond_50
.line 891
invoke-static {v4, v5}, Ljava/lang/Math;->min(II)I
move-result v8
int-to-float v8, v8
const/high16 v9, 0x40000000 # 2.0f
div-float/2addr v8, v9
int-to-float v10, v0
div-float/2addr v10, v9
sub-float/2addr v8, v10
.line 892
.local v8, "radius":F
int-to-float v10, v4
div-float/2addr v10, v9
int-to-float v11, v5
div-float/2addr v11, v9
invoke-virtual {v6, v10, v11, v8, v1}, Landroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V
.line 893
.end local v8 # "radius":F
move/from16 v10, p4
goto :goto_64
.line 894
:cond_50
shr-int/lit8 v8, v0, 0x1
.line 895
.local v8, "halfBorderSize":I
new-instance v9, Landroid/graphics/RectF;
int-to-float v10, v8
int-to-float v11, v8
sub-int v12, v4, v8
int-to-float v12, v12
sub-int v13, v5, v8
int-to-float v13, v13
invoke-direct {v9, v10, v11, v12, v13}, Landroid/graphics/RectF;-><init>(FFFF)V
.line 897
.local v9, "rectF":Landroid/graphics/RectF;
move/from16 v10, p4
invoke-virtual {v6, v9, v10, v10, v1}, Landroid/graphics/Canvas;->drawRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Paint;)V
.line 899
.end local v8 # "halfBorderSize":I
.end local v9 # "rectF":Landroid/graphics/RectF;
:goto_64
return-object v2
.end method
.method public static addCircleBorder(Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap;
.registers 9
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "borderSize" # I
.param p2, "color" # I
.line 845
const/4 v3, 0x1
const/4 v4, 0x0
const/4 v5, 0x0
move-object v0, p0
move v1, p1
move v2, p2
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/ImageUtils;->addBorder(Landroid/graphics/Bitmap;IIZFZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static addCircleBorder(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
.registers 10
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "borderSize" # I
.param p2, "color" # I
.param p3, "recycle" # Z
.line 861
const/4 v3, 0x1
const/4 v4, 0x0
move-object v0, p0
move v1, p1
move v2, p2
move v5, p3
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/ImageUtils;->addBorder(Landroid/graphics/Bitmap;IIZFZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static addCornerBorder(Landroid/graphics/Bitmap;IIF)Landroid/graphics/Bitmap;
.registers 10
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "borderSize" # I
.param p2, "color" # I
.param p3, "cornerRadius" # F
.line 813
const/4 v3, 0x0
const/4 v5, 0x0
move-object v0, p0
move v1, p1
move v2, p2
move v4, p3
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/ImageUtils;->addBorder(Landroid/graphics/Bitmap;IIZFZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static addCornerBorder(Landroid/graphics/Bitmap;IIFZ)Landroid/graphics/Bitmap;
.registers 11
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "borderSize" # I
.param p2, "color" # I
.param p3, "cornerRadius" # F
.param p4, "recycle" # Z
.line 831
const/4 v3, 0x0
move-object v0, p0
move v1, p1
move v2, p2
move v4, p3
move v5, p4
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/ImageUtils;->addBorder(Landroid/graphics/Bitmap;IIZFZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static addImageWatermark(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;III)Landroid/graphics/Bitmap;
.registers 11
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "watermark" # Landroid/graphics/Bitmap;
.param p2, "x" # I
.param p3, "y" # I
.param p4, "alpha" # I
.line 1017
const/4 v5, 0x0
move-object v0, p0
move-object v1, p1
move v2, p2
move v3, p3
move v4, p4
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/ImageUtils;->addImageWatermark(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;IIIZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static addImageWatermark(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;IIIZ)Landroid/graphics/Bitmap;
.registers 11
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "watermark" # Landroid/graphics/Bitmap;
.param p2, "x" # I
.param p3, "y" # I
.param p4, "alpha" # I
.param p5, "recycle" # Z
.line 1037
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_8
const/4 v0, 0x0
return-object v0
.line 1038
:cond_8
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 1039
.local v0, "ret":Landroid/graphics/Bitmap;
invoke-static {p1}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v2
if-nez v2, :cond_2a
.line 1040
new-instance v2, Landroid/graphics/Paint;
invoke-direct {v2, v1}, Landroid/graphics/Paint;-><init>(I)V
move-object v1, v2
.line 1041
.local v1, "paint":Landroid/graphics/Paint;
new-instance v2, Landroid/graphics/Canvas;
invoke-direct {v2, v0}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
.line 1042
.local v2, "canvas":Landroid/graphics/Canvas;
invoke-virtual {v1, p4}, Landroid/graphics/Paint;->setAlpha(I)V
.line 1043
int-to-float v3, p2
int-to-float v4, p3
invoke-virtual {v2, p1, v3, v4, v1}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V
.line 1045
.end local v1 # "paint":Landroid/graphics/Paint;
.end local v2 # "canvas":Landroid/graphics/Canvas;
:cond_2a
if-eqz p5, :cond_37
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v1
if-nez v1, :cond_37
if-eq v0, p0, :cond_37
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
.line 1046
:cond_37
return-object v0
.end method
.method public static addReflection(Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap;
.registers 3
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "reflectionHeight" # I
.line 910
const/4 v0, 0x0
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/ImageUtils;->addReflection(Landroid/graphics/Bitmap;IZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static addReflection(Landroid/graphics/Bitmap;IZ)Landroid/graphics/Bitmap;
.registers 24
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "reflectionHeight" # I
.param p2, "recycle" # Z
.line 924
move-object/from16 v7, p0
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_a
return-object v8
.line 925
:cond_a
const/4 v9, 0x0
.line 926
.local v9, "REFLECTION_GAP":I
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v10
.line 927
.local v10, "srcWidth":I
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v11
.line 928
.local v11, "srcHeight":I
new-instance v0, Landroid/graphics/Matrix;
invoke-direct {v0}, Landroid/graphics/Matrix;-><init>()V
move-object v12, v0
.line 929
.local v12, "matrix":Landroid/graphics/Matrix;
const/high16 v0, 0x3f800000 # 1.0f
const/high16 v1, -0x40800000 # -1.0f
invoke-virtual {v12, v0, v1}, Landroid/graphics/Matrix;->preScale(FF)Z
.line 930
const/4 v1, 0x0
sub-int v2, v11, p1
const/4 v6, 0x0
move-object/from16 v0, p0
move v3, v10
move/from16 v4, p1
move-object v5, v12
invoke-static/range {v0 .. v6}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap;
move-result-object v0
.line 932
.local v0, "reflectionBitmap":Landroid/graphics/Bitmap;
add-int v1, v11, p1
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getConfig()Landroid/graphics/Bitmap$Config;
move-result-object v2
invoke-static {v10, v1, v2}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v1
.line 933
.local v1, "ret":Landroid/graphics/Bitmap;
new-instance v2, Landroid/graphics/Canvas;
invoke-direct {v2, v1}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
.line 934
.local v2, "canvas":Landroid/graphics/Canvas;
const/4 v3, 0x0
invoke-virtual {v2, v7, v3, v3, v8}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V
.line 935
add-int/lit8 v4, v11, 0x0
int-to-float v4, v4
invoke-virtual {v2, v0, v3, v4, v8}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V
.line 936
new-instance v3, Landroid/graphics/Paint;
const/4 v4, 0x1
invoke-direct {v3, v4}, Landroid/graphics/Paint;-><init>(I)V
.line 937
.local v3, "paint":Landroid/graphics/Paint;
new-instance v4, Landroid/graphics/LinearGradient;
const/4 v14, 0x0
int-to-float v15, v11
const/16 v16, 0x0
.line 939
invoke-virtual {v1}, Landroid/graphics/Bitmap;->getHeight()I
move-result v5
add-int/lit8 v5, v5, 0x0
int-to-float v5, v5
const v18, 0x70ffffff
const v19, 0xffffff
sget-object v20, Landroid/graphics/Shader$TileMode;->MIRROR:Landroid/graphics/Shader$TileMode;
move-object v13, v4
move/from16 v17, v5
invoke-direct/range {v13 .. v20}, Landroid/graphics/LinearGradient;-><init>(FFFFIILandroid/graphics/Shader$TileMode;)V
.line 943
.local v4, "shader":Landroid/graphics/LinearGradient;
invoke-virtual {v3, v4}, Landroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader;
.line 944
new-instance v5, Landroid/graphics/PorterDuffXfermode;
sget-object v6, Landroid/graphics/PorterDuff$Mode;->DST_IN:Landroid/graphics/PorterDuff$Mode;
invoke-direct {v5, v6}, Landroid/graphics/PorterDuffXfermode;-><init>(Landroid/graphics/PorterDuff$Mode;)V
invoke-virtual {v3, v5}, Landroid/graphics/Paint;->setXfermode(Landroid/graphics/Xfermode;)Landroid/graphics/Xfermode;
.line 945
add-int/lit8 v5, v11, 0x0
int-to-float v15, v5
int-to-float v5, v10
invoke-virtual {v1}, Landroid/graphics/Bitmap;->getHeight()I
move-result v6
int-to-float v6, v6
move-object v13, v2
move/from16 v16, v5
move/from16 v17, v6
move-object/from16 v18, v3
invoke-virtual/range {v13 .. v18}, Landroid/graphics/Canvas;->drawRect(FFFFLandroid/graphics/Paint;)V
.line 946
invoke-virtual {v0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v5
if-nez v5, :cond_91
invoke-virtual {v0}, Landroid/graphics/Bitmap;->recycle()V
.line 947
:cond_91
if-eqz p2, :cond_9e
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v5
if-nez v5, :cond_9e
if-eq v1, v7, :cond_9e
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->recycle()V
.line 948
:cond_9e
return-object v1
.end method
.method public static addTextWatermark(Landroid/graphics/Bitmap;Ljava/lang/String;FIFFZ)Landroid/graphics/Bitmap;
.registers 13
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "content" # Ljava/lang/String;
.param p2, "textSize" # F
.param p3, "color" # I
.param p4, "x" # F
.param p5, "y" # F
.param p6, "recycle" # Z
.line 990
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-nez v0, :cond_43
if-nez p1, :cond_9
goto :goto_43
.line 991
:cond_9
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 992
.local v0, "ret":Landroid/graphics/Bitmap;
new-instance v2, Landroid/graphics/Paint;
invoke-direct {v2, v1}, Landroid/graphics/Paint;-><init>(I)V
move-object v1, v2
.line 993
.local v1, "paint":Landroid/graphics/Paint;
new-instance v2, Landroid/graphics/Canvas;
invoke-direct {v2, v0}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
.line 994
.local v2, "canvas":Landroid/graphics/Canvas;
invoke-virtual {v1, p3}, Landroid/graphics/Paint;->setColor(I)V
.line 995
invoke-virtual {v1, p2}, Landroid/graphics/Paint;->setTextSize(F)V
.line 996
new-instance v3, Landroid/graphics/Rect;
invoke-direct {v3}, Landroid/graphics/Rect;-><init>()V
.line 997
.local v3, "bounds":Landroid/graphics/Rect;
const/4 v4, 0x0
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v5
invoke-virtual {v1, p1, v4, v5, v3}, Landroid/graphics/Paint;->getTextBounds(Ljava/lang/String;IILandroid/graphics/Rect;)V
.line 998
add-float v4, p5, p2
invoke-virtual {v2, p1, p4, v4, v1}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
.line 999
if-eqz p6, :cond_42
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v4
if-nez v4, :cond_42
if-eq v0, p0, :cond_42
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
.line 1000
:cond_42
return-object v0
.line 990
.end local v0 # "ret":Landroid/graphics/Bitmap;
.end local v1 # "paint":Landroid/graphics/Paint;
.end local v2 # "canvas":Landroid/graphics/Canvas;
.end local v3 # "bounds":Landroid/graphics/Rect;
:cond_43
:goto_43
const/4 v0, 0x0
return-object v0
.end method
.method public static addTextWatermark(Landroid/graphics/Bitmap;Ljava/lang/String;IIFF)Landroid/graphics/Bitmap;
.registers 13
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "content" # Ljava/lang/String;
.param p2, "textSize" # I
.param p3, "color" # I
.param p4, "x" # F
.param p5, "y" # F
.line 968
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
invoke-static/range {v0 .. v6}, Lcom/blankj/utilcode/util/ImageUtils;->addTextWatermark(Landroid/graphics/Bitmap;Ljava/lang/String;FIFFZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static bitmap2Bytes(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap$CompressFormat;)[B
.registers 4
.param p0, "bitmap" # Landroid/graphics/Bitmap;
.param p1, "format" # Landroid/graphics/Bitmap$CompressFormat;
.line 71
if-nez p0, :cond_4
const/4 v0, 0x0
return-object v0
.line 72
:cond_4
new-instance v0, Ljava/io/ByteArrayOutputStream;
invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 73
.local v0, "baos":Ljava/io/ByteArrayOutputStream;
const/16 v1, 0x64
invoke-virtual {p0, p1, v1, v0}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
.line 74
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v1
return-object v1
.end method
.method public static bitmap2Drawable(Landroid/graphics/Bitmap;)Landroid/graphics/drawable/Drawable;
.registers 3
.param p0, "bitmap" # Landroid/graphics/Bitmap;
.line 128
if-nez p0, :cond_4
const/4 v0, 0x0
goto :goto_11
:cond_4
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
:goto_11
return-object v0
.end method
.method public static bytes2Bitmap([B)Landroid/graphics/Bitmap;
.registers 3
.param p0, "bytes" # [B
.line 84
if-eqz p0, :cond_d
array-length v0, p0
if-nez v0, :cond_6
goto :goto_d
:cond_6
const/4 v0, 0x0
array-length v1, p0
.line 86
invoke-static {p0, v0, v1}, Landroid/graphics/BitmapFactory;->decodeByteArray([BII)Landroid/graphics/Bitmap;
move-result-object v0
goto :goto_e
.line 84
:cond_d
:goto_d
const/4 v0, 0x0
:goto_e
return-object v0
.end method
.method public static bytes2Drawable([B)Landroid/graphics/drawable/Drawable;
.registers 2
.param p0, "bytes" # [B
.line 149
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->bytes2Bitmap([B)Landroid/graphics/Bitmap;
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/ImageUtils;->bitmap2Drawable(Landroid/graphics/Bitmap;)Landroid/graphics/drawable/Drawable;
move-result-object v0
return-object v0
.end method
.method private static bytes2HexString([B)Ljava/lang/String;
.registers 8
.param p0, "bytes" # [B
.line 1641
const-string v0, ""
if-nez p0, :cond_5
return-object v0
.line 1642
:cond_5
array-length v1, p0
.line 1643
.local v1, "len":I
if-gtz v1, :cond_9
return-object v0
.line 1644
:cond_9
shl-int/lit8 v0, v1, 0x1
new-array v0, v0, [C
.line 1645
.local v0, "ret":[C
const/4 v2, 0x0
.local v2, "i":I
const/4 v3, 0x0
.local v3, "j":I
:goto_f
if-ge v2, v1, :cond_2c
.line 1646
add-int/lit8 v4, v3, 0x1
.end local v3 # "j":I
.local v4, "j":I
sget-object v5, Lcom/blankj/utilcode/util/ImageUtils;->hexDigits:[C
aget-byte v6, p0, v2
shr-int/lit8 v6, v6, 0x4
and-int/lit8 v6, v6, 0xf
aget-char v6, v5, v6
aput-char v6, v0, v3
.line 1647
add-int/lit8 v3, v4, 0x1
.end local v4 # "j":I
.restart local v3 # "j":I
aget-byte v6, p0, v2
and-int/lit8 v6, v6, 0xf
aget-char v5, v5, v6
aput-char v5, v0, v4
.line 1645
add-int/lit8 v2, v2, 0x1
goto :goto_f
.line 1649
.end local v2 # "i":I
.end local v3 # "j":I
:cond_2c
new-instance v2, Ljava/lang/String;
invoke-direct {v2, v0}, Ljava/lang/String;-><init>([C)V
return-object v2
.end method
.method public static calculateInSampleSize(Landroid/graphics/BitmapFactory$Options;II)I
.registers 6
.param p0, "options" # Landroid/graphics/BitmapFactory$Options;
.param p1, "maxWidth" # I
.param p2, "maxHeight" # I
.line 1947
iget v0, p0, Landroid/graphics/BitmapFactory$Options;->outHeight:I
.line 1948
.local v0, "height":I
iget v1, p0, Landroid/graphics/BitmapFactory$Options;->outWidth:I
.line 1949
.local v1, "width":I
const/4 v2, 0x1
.line 1950
.local v2, "inSampleSize":I
:goto_5
if-gt v0, p2, :cond_b
if-le v1, p1, :cond_a
goto :goto_b
.line 1955
:cond_a
return v2
.line 1951
:cond_b
:goto_b
shr-int/lit8 v0, v0, 0x1
.line 1952
shr-int/lit8 v1, v1, 0x1
.line 1953
shl-int/lit8 v2, v2, 0x1
goto :goto_5
.end method
.method public static clip(Landroid/graphics/Bitmap;IIII)Landroid/graphics/Bitmap;
.registers 11
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "x" # I
.param p2, "y" # I
.param p3, "width" # I
.param p4, "height" # I
.line 475
const/4 v5, 0x0
move-object v0, p0
move v1, p1
move v2, p2
move v3, p3
move v4, p4
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/ImageUtils;->clip(Landroid/graphics/Bitmap;IIIIZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static clip(Landroid/graphics/Bitmap;IIIIZ)Landroid/graphics/Bitmap;
.registers 8
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "x" # I
.param p2, "y" # I
.param p3, "width" # I
.param p4, "height" # I
.param p5, "recycle" # Z
.line 495
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_8
const/4 v0, 0x0
return-object v0
.line 496
:cond_8
invoke-static {p0, p1, p2, p3, p4}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIII)Landroid/graphics/Bitmap;
move-result-object v0
.line 497
.local v0, "ret":Landroid/graphics/Bitmap;
if-eqz p5, :cond_19
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v1
if-nez v1, :cond_19
if-eq v0, p0, :cond_19
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
.line 498
:cond_19
return-object v0
.end method
.method public static compressByQuality(Landroid/graphics/Bitmap;I)[B
.registers 3
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "quality" # I
.line 1755
const/4 v0, 0x0
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/ImageUtils;->compressByQuality(Landroid/graphics/Bitmap;IZ)[B
move-result-object v0
return-object v0
.end method
.method public static compressByQuality(Landroid/graphics/Bitmap;IZ)[B
.registers 6
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "quality" # I
.param p2, "recycle" # Z
.line 1769
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_8
const/4 v0, 0x0
return-object v0
.line 1770
:cond_8
new-instance v0, Ljava/io/ByteArrayOutputStream;
invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 1771
.local v0, "baos":Ljava/io/ByteArrayOutputStream;
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 1772
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v1
.line 1773
.local v1, "bytes":[B
if-eqz p2, :cond_21
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v2
if-nez v2, :cond_21
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
.line 1774
:cond_21
return-object v1
.end method
.method public static compressByQuality(Landroid/graphics/Bitmap;J)[B
.registers 4
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "maxByteSize" # J
.line 1785
const/4 v0, 0x0
invoke-static {p0, p1, p2, v0}, Lcom/blankj/utilcode/util/ImageUtils;->compressByQuality(Landroid/graphics/Bitmap;JZ)[B
move-result-object v0
return-object v0
.end method
.method public static compressByQuality(Landroid/graphics/Bitmap;JZ)[B
.registers 12
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "maxByteSize" # J
.param p3, "recycle" # Z
.line 1799
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
const/4 v1, 0x0
if-nez v0, :cond_83
const-wide/16 v2, 0x0
cmp-long v0, p1, v2
if-gtz v0, :cond_f
goto/16 :goto_83
.line 1800
:cond_f
new-instance v0, Ljava/io/ByteArrayOutputStream;
invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 1801
.local v0, "baos":Ljava/io/ByteArrayOutputStream;
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 1803
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->size()I
move-result v2
int-to-long v2, v2
cmp-long v4, v2, p1
if-gtz v4, :cond_29
.line 1804
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v1
.local v1, "bytes":[B
goto :goto_77
.line 1806
.end local v1 # "bytes":[B
:cond_29
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->reset()V
.line 1807
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 1808
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->size()I
move-result v1
int-to-long v1, v1
cmp-long v3, v1, p1
if-ltz v3, :cond_3f
.line 1809
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v1
.restart local v1 # "bytes":[B
goto :goto_77
.line 1812
.end local v1 # "bytes":[B
:cond_3f
const/4 v1, 0x0
.line 1813
.local v1, "st":I
const/16 v2, 0x64
.line 1814
.local v2, "end":I
const/4 v3, 0x0
.line 1815
.local v3, "mid":I
:goto_43
if-ge v1, v2, :cond_66
.line 1816
add-int v4, v1, v2
div-int/lit8 v3, v4, 0x2
.line 1817
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->reset()V
.line 1818
sget-object v4, Landroid/graphics/Bitmap$CompressFormat;->JPEG:Landroid/graphics/Bitmap$CompressFormat;
invoke-virtual {p0, v4, v3, v0}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
.line 1819
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->size()I
move-result v4
.line 1820
.local v4, "len":I
int-to-long v5, v4
cmp-long v7, v5, p1
if-nez v7, :cond_5b
.line 1821
goto :goto_66
.line 1822
:cond_5b
int-to-long v5, v4
cmp-long v7, v5, p1
if-lez v7, :cond_63
.line 1823
add-int/lit8 v2, v3, -0x1
goto :goto_65
.line 1825
:cond_63
add-int/lit8 v1, v3, 0x1
.line 1827
.end local v4 # "len":I
:goto_65
goto :goto_43
.line 1828
:cond_66
:goto_66
add-int/lit8 v4, v3, -0x1
if-ne v2, v4, :cond_72
.line 1829
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->reset()V
.line 1830
sget-object v4, Landroid/graphics/Bitmap$CompressFormat;->JPEG:Landroid/graphics/Bitmap$CompressFormat;
invoke-virtual {p0, v4, v1, v0}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
.line 1832
:cond_72
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v4
move-object v1, v4
.line 1835
.end local v2 # "end":I
.end local v3 # "mid":I
.local v1, "bytes":[B
:goto_77
if-eqz p3, :cond_82
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v2
if-nez v2, :cond_82
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
.line 1836
:cond_82
return-object v1
.line 1799
.end local v0 # "baos":Ljava/io/ByteArrayOutputStream;
.end local v1 # "bytes":[B
:cond_83
:goto_83
new-array v0, v1, [B
return-object v0
.end method
.method public static compressBySampleSize(Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap;
.registers 3
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "sampleSize" # I
.line 1848
const/4 v0, 0x0
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/ImageUtils;->compressBySampleSize(Landroid/graphics/Bitmap;IZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static compressBySampleSize(Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap;
.registers 4
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "maxWidth" # I
.param p2, "maxHeight" # I
.line 1883
const/4 v0, 0x0
invoke-static {p0, p1, p2, v0}, Lcom/blankj/utilcode/util/ImageUtils;->compressBySampleSize(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static compressBySampleSize(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
.registers 9
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "maxWidth" # I
.param p2, "maxHeight" # I
.param p3, "recycle" # Z
.line 1899
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_8
const/4 v0, 0x0
return-object v0
.line 1900
:cond_8
new-instance v0, Landroid/graphics/BitmapFactory$Options;
invoke-direct {v0}, Landroid/graphics/BitmapFactory$Options;-><init>()V
.line 1901
.local v0, "options":Landroid/graphics/BitmapFactory$Options;
const/4 v1, 0x1
iput-boolean v1, v0, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 1902
new-instance v1, Ljava/io/ByteArrayOutputStream;
invoke-direct {v1}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 1903
.local v1, "baos":Ljava/io/ByteArrayOutputStream;
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 1904
invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v2
.line 1905
.local v2, "bytes":[B
array-length v3, v2
const/4 v4, 0x0
invoke-static {v2, v4, v3, v0}, Landroid/graphics/BitmapFactory;->decodeByteArray([BIILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
.line 1906
invoke-static {v0, p1, p2}, Lcom/blankj/utilcode/util/ImageUtils;->calculateInSampleSize(Landroid/graphics/BitmapFactory$Options;II)I
move-result v3
iput v3, v0, Landroid/graphics/BitmapFactory$Options;->inSampleSize:I
.line 1907
iput-boolean v4, v0, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 1908
if-eqz p3, :cond_38
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v3
if-nez v3, :cond_38
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
.line 1909
:cond_38
array-length v3, v2
invoke-static {v2, v4, v3, v0}, Landroid/graphics/BitmapFactory;->decodeByteArray([BIILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
move-result-object v3
return-object v3
.end method
.method public static compressBySampleSize(Landroid/graphics/Bitmap;IZ)Landroid/graphics/Bitmap;
.registers 8
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "sampleSize" # I
.param p2, "recycle" # Z
.line 1862
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_8
const/4 v0, 0x0
return-object v0
.line 1863
:cond_8
new-instance v0, Landroid/graphics/BitmapFactory$Options;
invoke-direct {v0}, Landroid/graphics/BitmapFactory$Options;-><init>()V
.line 1864
.local v0, "options":Landroid/graphics/BitmapFactory$Options;
iput p1, v0, Landroid/graphics/BitmapFactory$Options;->inSampleSize:I
.line 1865
new-instance v1, Ljava/io/ByteArrayOutputStream;
invoke-direct {v1}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 1866
.local v1, "baos":Ljava/io/ByteArrayOutputStream;
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 1867
invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v2
.line 1868
.local v2, "bytes":[B
if-eqz p2, :cond_2a
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v3
if-nez v3, :cond_2a
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
.line 1869
:cond_2a
const/4 v3, 0x0
array-length v4, v2
invoke-static {v2, v3, v4, v0}, Landroid/graphics/BitmapFactory;->decodeByteArray([BIILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
move-result-object v3
return-object v3
.end method
.method public static compressByScale(Landroid/graphics/Bitmap;FF)Landroid/graphics/Bitmap;
.registers 4
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "scaleWidth" # F
.param p2, "scaleHeight" # F
.line 1727
const/4 v0, 0x0
invoke-static {p0, p1, p2, v0}, Lcom/blankj/utilcode/util/ImageUtils;->scale(Landroid/graphics/Bitmap;FFZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static compressByScale(Landroid/graphics/Bitmap;FFZ)Landroid/graphics/Bitmap;
.registers 5
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "scaleWidth" # F
.param p2, "scaleHeight" # F
.param p3, "recycle" # Z
.line 1743
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/ImageUtils;->scale(Landroid/graphics/Bitmap;FFZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static compressByScale(Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap;
.registers 4
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "newWidth" # I
.param p2, "newHeight" # I
.line 1697
const/4 v0, 0x0
invoke-static {p0, p1, p2, v0}, Lcom/blankj/utilcode/util/ImageUtils;->scale(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static compressByScale(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
.registers 5
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "newWidth" # I
.param p2, "newHeight" # I
.param p3, "recycle" # Z
.line 1713
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/ImageUtils;->scale(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method private static createFileByDeleteOldFile(Ljava/io/File;)Z
.registers 3
.param p0, "file" # Ljava/io/File;
.line 1967
const/4 v0, 0x0
if-nez p0, :cond_4
return v0
.line 1968
:cond_4
invoke-virtual {p0}, Ljava/io/File;->exists()Z
move-result v1
if-eqz v1, :cond_11
invoke-virtual {p0}, Ljava/io/File;->delete()Z
move-result v1
if-nez v1, :cond_11
return v0
.line 1969
:cond_11
invoke-virtual {p0}, Ljava/io/File;->getParentFile()Ljava/io/File;
move-result-object v1
invoke-static {v1}, Lcom/blankj/utilcode/util/ImageUtils;->createOrExistsDir(Ljava/io/File;)Z
move-result v1
if-nez v1, :cond_1c
return v0
.line 1971
:cond_1c
:try_start_1c
invoke-virtual {p0}, Ljava/io/File;->createNewFile()Z
move-result v0
:try_end_20
.catch Ljava/io/IOException; {:try_start_1c .. :try_end_20} :catch_21
return v0
.line 1972
:catch_21
move-exception v1
.line 1973
.local v1, "e":Ljava/io/IOException;
invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V
.line 1974
return v0
.end method
.method private static createOrExistsDir(Ljava/io/File;)Z
.registers 2
.param p0, "file" # Ljava/io/File;
.line 1979
if-eqz p0, :cond_17
invoke-virtual {p0}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :cond_f
invoke-virtual {p0}, Ljava/io/File;->isDirectory()Z
move-result v0
if-eqz v0, :cond_17
goto :goto_15
:cond_f
invoke-virtual {p0}, Ljava/io/File;->mkdirs()Z
move-result v0
if-eqz v0, :cond_17
:goto_15
const/4 v0, 0x1
goto :goto_18
:cond_17
const/4 v0, 0x0
:goto_18
return v0
.end method
.method public static drawColor(Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap;
.registers 4
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "color" # I
.line 374
if-eqz p0, :cond_8
.line 375
const/4 v0, 0x0
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/ImageUtils;->drawColor(Landroid/graphics/Bitmap;IZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.line 374
:cond_8
new-instance v0, Ljava/lang/NullPointerException;
const-string v1, "Argument \'src\' of type Bitmap (#0 out of 2, zero-based) is marked by @android.support.annotation.NonNull but got null for it"
invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public static drawColor(Landroid/graphics/Bitmap;IZ)Landroid/graphics/Bitmap;
.registers 6
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "color" # I
.param p2, "recycle" # Z
.line 386
if-eqz p0, :cond_22
.line 389
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_a
const/4 v0, 0x0
return-object v0
.line 390
:cond_a
if-eqz p2, :cond_e
move-object v0, p0
goto :goto_17
:cond_e
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 391
.local v0, "ret":Landroid/graphics/Bitmap;
:goto_17
new-instance v1, Landroid/graphics/Canvas;
invoke-direct {v1, v0}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
.line 392
.local v1, "canvas":Landroid/graphics/Canvas;
sget-object v2, Landroid/graphics/PorterDuff$Mode;->DARKEN:Landroid/graphics/PorterDuff$Mode;
invoke-virtual {v1, p1, v2}, Landroid/graphics/Canvas;->drawColor(ILandroid/graphics/PorterDuff$Mode;)V
.line 393
return-object v0
.line 386
.end local v0 # "ret":Landroid/graphics/Bitmap;
.end local v1 # "canvas":Landroid/graphics/Canvas;
:cond_22
new-instance v0, Ljava/lang/NullPointerException;
const-string v1, "Argument \'src\' of type Bitmap (#0 out of 3, zero-based) is marked by @android.support.annotation.NonNull but got null for it"
invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public static drawable2Bitmap(Landroid/graphics/drawable/Drawable;)Landroid/graphics/Bitmap;
.registers 6
.param p0, "drawable" # Landroid/graphics/drawable/Drawable;
.line 96
instance-of v0, p0, Landroid/graphics/drawable/BitmapDrawable;
if-eqz v0, :cond_12
.line 97
move-object v0, p0
check-cast v0, Landroid/graphics/drawable/BitmapDrawable;
.line 98
.local v0, "bitmapDrawable":Landroid/graphics/drawable/BitmapDrawable;
invoke-virtual {v0}, Landroid/graphics/drawable/BitmapDrawable;->getBitmap()Landroid/graphics/Bitmap;
move-result-object v1
if-eqz v1, :cond_12
.line 99
invoke-virtual {v0}, Landroid/graphics/drawable/BitmapDrawable;->getBitmap()Landroid/graphics/Bitmap;
move-result-object v1
return-object v1
.line 103
.end local v0 # "bitmapDrawable":Landroid/graphics/drawable/BitmapDrawable;
:cond_12
invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->getIntrinsicWidth()I
move-result v0
const/4 v1, -0x1
if-lez v0, :cond_38
invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I
move-result v0
if-gtz v0, :cond_20
goto :goto_38
.line 109
:cond_20
invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->getIntrinsicWidth()I
move-result v0
.line 110
invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I
move-result v2
.line 111
invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->getOpacity()I
move-result v3
if-eq v3, v1, :cond_31
sget-object v1, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
goto :goto_33
:cond_31
sget-object v1, Landroid/graphics/Bitmap$Config;->RGB_565:Landroid/graphics/Bitmap$Config;
.line 109
:goto_33
invoke-static {v0, v2, v1}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v0
.local v0, "bitmap":Landroid/graphics/Bitmap;
goto :goto_49
.line 104
.end local v0 # "bitmap":Landroid/graphics/Bitmap;
:cond_38
:goto_38
nop
.line 105
invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->getOpacity()I
move-result v0
if-eq v0, v1, :cond_42
sget-object v0, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
goto :goto_44
:cond_42
sget-object v0, Landroid/graphics/Bitmap$Config;->RGB_565:Landroid/graphics/Bitmap$Config;
.line 104
:goto_44
const/4 v1, 0x1
invoke-static {v1, v1, v0}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v0
.line 115
.restart local v0 # "bitmap":Landroid/graphics/Bitmap;
:goto_49
new-instance v1, Landroid/graphics/Canvas;
invoke-direct {v1, v0}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
.line 116
.local v1, "canvas":Landroid/graphics/Canvas;
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 117
invoke-virtual {p0, v1}, Landroid/graphics/drawable/Drawable;->draw(Landroid/graphics/Canvas;)V
.line 118
return-object v0
.end method
.method public static drawable2Bytes(Landroid/graphics/drawable/Drawable;Landroid/graphics/Bitmap$CompressFormat;)[B
.registers 3
.param p0, "drawable" # Landroid/graphics/drawable/Drawable;
.param p1, "format" # Landroid/graphics/Bitmap$CompressFormat;
.line 139
if-nez p0, :cond_4
const/4 v0, 0x0
goto :goto_c
:cond_4
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->drawable2Bitmap(Landroid/graphics/drawable/Drawable;)Landroid/graphics/Bitmap;
move-result-object v0
invoke-static {v0, p1}, Lcom/blankj/utilcode/util/ImageUtils;->bitmap2Bytes(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap$CompressFormat;)[B
move-result-object v0
:goto_c
return-object v0
.end method
.method public static fastBlur(Landroid/graphics/Bitmap;FF)Landroid/graphics/Bitmap;
.registers 4
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "scale" # F
.param p2, "radius" # F
.line 1120
const/4 v0, 0x0
invoke-static {p0, p1, p2, v0, v0}, Lcom/blankj/utilcode/util/ImageUtils;->fastBlur(Landroid/graphics/Bitmap;FFZZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static fastBlur(Landroid/graphics/Bitmap;FFZ)Landroid/graphics/Bitmap;
.registers 5
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "scale" # F
.param p2, "radius" # F
.param p3, "recycle" # Z
.line 1140
const/4 v0, 0x0
invoke-static {p0, p1, p2, p3, v0}, Lcom/blankj/utilcode/util/ImageUtils;->fastBlur(Landroid/graphics/Bitmap;FFZZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static fastBlur(Landroid/graphics/Bitmap;FFZZ)Landroid/graphics/Bitmap;
.registers 15
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "scale" # F
.param p2, "radius" # F
.param p3, "recycle" # Z
.param p4, "isReturnScale" # Z
.line 1163
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_8
const/4 v0, 0x0
return-object v0
.line 1164
:cond_8
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v0
.line 1165
.local v0, "width":I
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v1
.line 1166
.local v1, "height":I
new-instance v2, Landroid/graphics/Matrix;
invoke-direct {v2}, Landroid/graphics/Matrix;-><init>()V
.line 1167
.local v2, "matrix":Landroid/graphics/Matrix;
invoke-virtual {v2, p1, p1}, Landroid/graphics/Matrix;->setScale(FF)V
.line 1168
const/4 v4, 0x0
const/4 v5, 0x0
.line 1169
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v6
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v7
const/4 v9, 0x1
move-object v3, p0
move-object v8, v2
invoke-static/range {v3 .. v9}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap;
move-result-object v3
.line 1170
.local v3, "scaleBitmap":Landroid/graphics/Bitmap;
new-instance v4, Landroid/graphics/Paint;
const/4 v5, 0x3
invoke-direct {v4, v5}, Landroid/graphics/Paint;-><init>(I)V
.line 1171
.local v4, "paint":Landroid/graphics/Paint;
new-instance v5, Landroid/graphics/Canvas;
invoke-direct {v5}, Landroid/graphics/Canvas;-><init>()V
.line 1172
.local v5, "canvas":Landroid/graphics/Canvas;
new-instance v6, Landroid/graphics/PorterDuffColorFilter;
const/4 v7, 0x0
sget-object v8, Landroid/graphics/PorterDuff$Mode;->SRC_ATOP:Landroid/graphics/PorterDuff$Mode;
invoke-direct {v6, v7, v8}, Landroid/graphics/PorterDuffColorFilter;-><init>(ILandroid/graphics/PorterDuff$Mode;)V
.line 1174
.local v6, "filter":Landroid/graphics/PorterDuffColorFilter;
invoke-virtual {v4, v6}, Landroid/graphics/Paint;->setColorFilter(Landroid/graphics/ColorFilter;)Landroid/graphics/ColorFilter;
.line 1175
invoke-virtual {v5, p1, p1}, Landroid/graphics/Canvas;->scale(FF)V
.line 1176
const/4 v7, 0x0
invoke-virtual {v5, v3, v7, v7, v4}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V
.line 1177
sget v7, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v8, 0x11
if-lt v7, v8, :cond_51
.line 1178
invoke-static {v3, p2, p3}, Lcom/blankj/utilcode/util/ImageUtils;->renderScriptBlur(Landroid/graphics/Bitmap;FZ)Landroid/graphics/Bitmap;
move-result-object v3
goto :goto_56
.line 1180
:cond_51
float-to-int v7, p2
invoke-static {v3, v7, p3}, Lcom/blankj/utilcode/util/ImageUtils;->stackBlur(Landroid/graphics/Bitmap;IZ)Landroid/graphics/Bitmap;
move-result-object v3
.line 1182
:goto_56
const/high16 v7, 0x3f800000 # 1.0f
cmpl-float v7, p1, v7
if-eqz v7, :cond_7b
if-eqz p4, :cond_5f
goto :goto_7b
.line 1186
:cond_5f
const/4 v7, 0x1
invoke-static {v3, v0, v1, v7}, Landroid/graphics/Bitmap;->createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
move-result-object v7
.line 1187
.local v7, "ret":Landroid/graphics/Bitmap;
invoke-virtual {v3}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v8
if-nez v8, :cond_6d
invoke-virtual {v3}, Landroid/graphics/Bitmap;->recycle()V
.line 1188
:cond_6d
if-eqz p3, :cond_7a
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v8
if-nez v8, :cond_7a
if-eq v7, p0, :cond_7a
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
.line 1189
:cond_7a
return-object v7
.line 1183
.end local v7 # "ret":Landroid/graphics/Bitmap;
:cond_7b
:goto_7b
if-eqz p3, :cond_88
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v7
if-nez v7, :cond_88
if-eq v3, p0, :cond_88
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
.line 1184
:cond_88
return-object v3
.end method
.method public static getBitmap(I)Landroid/graphics/Bitmap;
.registers 7
.param p0, "resId" # I
.line 305
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 v0
.line 306
.local v0, "drawable":Landroid/graphics/drawable/Drawable;
new-instance v1, Landroid/graphics/Canvas;
invoke-direct {v1}, Landroid/graphics/Canvas;-><init>()V
.line 307
.local v1, "canvas":Landroid/graphics/Canvas;
invoke-virtual {v0}, Landroid/graphics/drawable/Drawable;->getIntrinsicWidth()I
move-result v2
.line 308
invoke-virtual {v0}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I
move-result v3
sget-object v4, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
.line 307
invoke-static {v2, v3, v4}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v2
.line 310
.local v2, "bitmap":Landroid/graphics/Bitmap;
invoke-virtual {v1, v2}, Landroid/graphics/Canvas;->setBitmap(Landroid/graphics/Bitmap;)V
.line 311
invoke-virtual {v0}, Landroid/graphics/drawable/Drawable;->getIntrinsicWidth()I
move-result v3
invoke-virtual {v0}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I
move-result v4
const/4 v5, 0x0
invoke-virtual {v0, v5, v5, v3, v4}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V
.line 312
invoke-virtual {v0, v1}, Landroid/graphics/drawable/Drawable;->draw(Landroid/graphics/Canvas;)V
.line 313
return-object v2
.end method
.method public static getBitmap(III)Landroid/graphics/Bitmap;
.registers 6
.param p0, "resId" # I
.param p1, "maxWidth" # I
.param p2, "maxHeight" # I
.line 327
new-instance v0, Landroid/graphics/BitmapFactory$Options;
invoke-direct {v0}, Landroid/graphics/BitmapFactory$Options;-><init>()V
.line 328
.local v0, "options":Landroid/graphics/BitmapFactory$Options;
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
.line 329
.local v1, "resources":Landroid/content/res/Resources;
const/4 v2, 0x1
iput-boolean v2, v0, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 330
invoke-static {v1, p0, v0}, Landroid/graphics/BitmapFactory;->decodeResource(Landroid/content/res/Resources;ILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
.line 331
invoke-static {v0, p1, p2}, Lcom/blankj/utilcode/util/ImageUtils;->calculateInSampleSize(Landroid/graphics/BitmapFactory$Options;II)I
move-result v2
iput v2, v0, Landroid/graphics/BitmapFactory$Options;->inSampleSize:I
.line 332
const/4 v2, 0x0
iput-boolean v2, v0, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 333
invoke-static {v1, p0, v0}, Landroid/graphics/BitmapFactory;->decodeResource(Landroid/content/res/Resources;ILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
move-result-object v2
return-object v2
.end method
.method public static getBitmap(Ljava/io/File;)Landroid/graphics/Bitmap;
.registers 2
.param p0, "file" # Ljava/io/File;
.line 188
if-nez p0, :cond_4
const/4 v0, 0x0
return-object v0
.line 189
:cond_4
invoke-virtual {p0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Landroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static getBitmap(Ljava/io/File;II)Landroid/graphics/Bitmap;
.registers 5
.param p0, "file" # Ljava/io/File;
.param p1, "maxWidth" # I
.param p2, "maxHeight" # I
.line 201
if-nez p0, :cond_4
const/4 v0, 0x0
return-object v0
.line 202
:cond_4
new-instance v0, Landroid/graphics/BitmapFactory$Options;
invoke-direct {v0}, Landroid/graphics/BitmapFactory$Options;-><init>()V
.line 203
.local v0, "options":Landroid/graphics/BitmapFactory$Options;
const/4 v1, 0x1
iput-boolean v1, v0, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 204
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 205
invoke-static {v0, p1, p2}, Lcom/blankj/utilcode/util/ImageUtils;->calculateInSampleSize(Landroid/graphics/BitmapFactory$Options;II)I
move-result v1
iput v1, v0, Landroid/graphics/BitmapFactory$Options;->inSampleSize:I
.line 206
const/4 v1, 0x0
iput-boolean v1, v0, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 207
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;
move-result-object v1
return-object v1
.end method
.method public static getBitmap(Ljava/io/FileDescriptor;)Landroid/graphics/Bitmap;
.registers 2
.param p0, "fd" # Ljava/io/FileDescriptor;
.line 343
if-nez p0, :cond_4
const/4 v0, 0x0
return-object v0
.line 344
:cond_4
invoke-static {p0}, Landroid/graphics/BitmapFactory;->decodeFileDescriptor(Ljava/io/FileDescriptor;)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static getBitmap(Ljava/io/FileDescriptor;II)Landroid/graphics/Bitmap;
.registers 6
.param p0, "fd" # Ljava/io/FileDescriptor;
.param p1, "maxWidth" # I
.param p2, "maxHeight" # I
.line 358
const/4 v0, 0x0
if-nez p0, :cond_4
return-object v0
.line 359
:cond_4
new-instance v1, Landroid/graphics/BitmapFactory$Options;
invoke-direct {v1}, Landroid/graphics/BitmapFactory$Options;-><init>()V
.line 360
.local v1, "options":Landroid/graphics/BitmapFactory$Options;
const/4 v2, 0x1
iput-boolean v2, v1, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 361
invoke-static {p0, v0, v1}, Landroid/graphics/BitmapFactory;->decodeFileDescriptor(Ljava/io/FileDescriptor;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
.line 362
invoke-static {v1, p1, p2}, Lcom/blankj/utilcode/util/ImageUtils;->calculateInSampleSize(Landroid/graphics/BitmapFactory$Options;II)I
move-result v2
iput v2, v1, Landroid/graphics/BitmapFactory$Options;->inSampleSize:I
.line 363
const/4 v2, 0x0
iput-boolean v2, v1, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 364
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 v0
return-object v0
.end method
.method public static getBitmap(Ljava/io/InputStream;)Landroid/graphics/Bitmap;
.registers 2
.param p0, "is" # Ljava/io/InputStream;
.line 246
if-nez p0, :cond_4
const/4 v0, 0x0
return-object v0
.line 247
:cond_4
invoke-static {p0}, Landroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static getBitmap(Ljava/io/InputStream;II)Landroid/graphics/Bitmap;
.registers 5
.param p0, "is" # Ljava/io/InputStream;
.param p1, "maxWidth" # I
.param p2, "maxHeight" # I
.line 259
if-nez p0, :cond_4
const/4 v0, 0x0
return-object v0
.line 260
:cond_4
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->input2Byte(Ljava/io/InputStream;)[B
move-result-object v0
.line 261
.local v0, "bytes":[B
const/4 v1, 0x0
invoke-static {v0, v1, p1, p2}, Lcom/blankj/utilcode/util/ImageUtils;->getBitmap([BIII)Landroid/graphics/Bitmap;
move-result-object v1
return-object v1
.end method
.method public static getBitmap(Ljava/lang/String;)Landroid/graphics/Bitmap;
.registers 2
.param p0, "filePath" # Ljava/lang/String;
.line 217
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isSpace(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_8
const/4 v0, 0x0
return-object v0
.line 218
:cond_8
invoke-static {p0}, Landroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static getBitmap(Ljava/lang/String;II)Landroid/graphics/Bitmap;
.registers 5
.param p0, "filePath" # Ljava/lang/String;
.param p1, "maxWidth" # I
.param p2, "maxHeight" # I
.line 230
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isSpace(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_8
const/4 v0, 0x0
return-object v0
.line 231
:cond_8
new-instance v0, Landroid/graphics/BitmapFactory$Options;
invoke-direct {v0}, Landroid/graphics/BitmapFactory$Options;-><init>()V
.line 232
.local v0, "options":Landroid/graphics/BitmapFactory$Options;
const/4 v1, 0x1
iput-boolean v1, v0, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 233
invoke-static {p0, v0}, Landroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
.line 234
invoke-static {v0, p1, p2}, Lcom/blankj/utilcode/util/ImageUtils;->calculateInSampleSize(Landroid/graphics/BitmapFactory$Options;II)I
move-result v1
iput v1, v0, Landroid/graphics/BitmapFactory$Options;->inSampleSize:I
.line 235
const/4 v1, 0x0
iput-boolean v1, v0, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 236
invoke-static {p0, v0}, Landroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
move-result-object v1
return-object v1
.end method
.method public static getBitmap([BI)Landroid/graphics/Bitmap;
.registers 3
.param p0, "data" # [B
.param p1, "offset" # I
.line 272
array-length v0, p0
if-nez v0, :cond_5
const/4 v0, 0x0
return-object v0
.line 273
:cond_5
array-length v0, p0
invoke-static {p0, p1, v0}, Landroid/graphics/BitmapFactory;->decodeByteArray([BII)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static getBitmap([BIII)Landroid/graphics/Bitmap;
.registers 6
.param p0, "data" # [B
.param p1, "offset" # I
.param p2, "maxWidth" # I
.param p3, "maxHeight" # I
.line 289
array-length v0, p0
if-nez v0, :cond_5
const/4 v0, 0x0
return-object v0
.line 290
:cond_5
new-instance v0, Landroid/graphics/BitmapFactory$Options;
invoke-direct {v0}, Landroid/graphics/BitmapFactory$Options;-><init>()V
.line 291
.local v0, "options":Landroid/graphics/BitmapFactory$Options;
const/4 v1, 0x1
iput-boolean v1, v0, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 292
array-length v1, p0
invoke-static {p0, p1, v1, v0}, Landroid/graphics/BitmapFactory;->decodeByteArray([BIILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
.line 293
invoke-static {v0, p2, p3}, Lcom/blankj/utilcode/util/ImageUtils;->calculateInSampleSize(Landroid/graphics/BitmapFactory$Options;II)I
move-result v1
iput v1, v0, Landroid/graphics/BitmapFactory$Options;->inSampleSize:I
.line 294
const/4 v1, 0x0
iput-boolean v1, v0, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 295
array-length v1, p0
invoke-static {p0, p1, v1, v0}, Landroid/graphics/BitmapFactory;->decodeByteArray([BIILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
move-result-object v1
return-object v1
.end method
.method private static getFileByPath(Ljava/lang/String;)Ljava/io/File;
.registers 2
.param p0, "filePath" # Ljava/lang/String;
.line 1963
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isSpace(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_8
const/4 v0, 0x0
goto :goto_d
:cond_8
new-instance v0, Ljava/io/File;
invoke-direct {v0, p0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
:goto_d
return-object v0
.end method
.method public static getImageType(Ljava/io/File;)Lcom/blankj/utilcode/util/ImageUtils$ImageType;
.registers 4
.param p0, "file" # Ljava/io/File;
.line 1583
const/4 v0, 0x0
if-nez p0, :cond_4
return-object v0
.line 1584
:cond_4
const/4 v1, 0x0
.line 1586
.local v1, "is":Ljava/io/InputStream;
:try_start_5
new-instance v2, Ljava/io/FileInputStream;
invoke-direct {v2, p0}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
move-object v1, v2
.line 1587
invoke-static {v1}, Lcom/blankj/utilcode/util/ImageUtils;->getImageType(Ljava/io/InputStream;)Lcom/blankj/utilcode/util/ImageUtils$ImageType;
move-result-object v2
:try_end_f
.catch Ljava/io/IOException; {:try_start_5 .. :try_end_f} :catch_28
.catchall {:try_start_5 .. :try_end_f} :catchall_26
.line 1588
.local v2, "type":Lcom/blankj/utilcode/util/ImageUtils$ImageType;
if-eqz v2, :cond_1c
.line 1589
nop
.line 1595
nop
.line 1596
:try_start_13
invoke-virtual {v1}, Ljava/io/InputStream;->close()V
:try_end_16
.catch Ljava/io/IOException; {:try_start_13 .. :try_end_16} :catch_17
.line 1600
goto :goto_1b
.line 1598
:catch_17
move-exception v0
.line 1599
.local v0, "e":Ljava/io/IOException;
invoke-virtual {v0}, Ljava/io/IOException;->printStackTrace()V
.line 1589
.end local v0 # "e":Ljava/io/IOException;
:goto_1b
return-object v2
.line 1595
.end local v2 # "type":Lcom/blankj/utilcode/util/ImageUtils$ImageType;
:cond_1c
nop
.line 1596
:try_start_1d
invoke-virtual {v1}, Ljava/io/InputStream;->close()V
:try_end_20
.catch Ljava/io/IOException; {:try_start_1d .. :try_end_20} :catch_21
.line 1600
:cond_20
:goto_20
goto :goto_32
.line 1598
:catch_21
move-exception v2
.line 1599
.local v2, "e":Ljava/io/IOException;
invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
.line 1601
.end local v2 # "e":Ljava/io/IOException;
goto :goto_32
.line 1594
:catchall_26
move-exception v0
goto :goto_33
.line 1591
:catch_28
move-exception v2
.line 1592
.restart local v2 # "e":Ljava/io/IOException;
:try_start_29
invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
:try_end_2c
.catchall {:try_start_29 .. :try_end_2c} :catchall_26
.line 1595
.end local v2 # "e":Ljava/io/IOException;
if-eqz v1, :cond_20
.line 1596
:try_start_2e
invoke-virtual {v1}, Ljava/io/InputStream;->close()V
:try_end_31
.catch Ljava/io/IOException; {:try_start_2e .. :try_end_31} :catch_21
goto :goto_20
.line 1602
:goto_32
return-object v0
.line 1595
:goto_33
if-eqz v1, :cond_3e
.line 1596
:try_start_35
invoke-virtual {v1}, Ljava/io/InputStream;->close()V
:try_end_38
.catch Ljava/io/IOException; {:try_start_35 .. :try_end_38} :catch_39
goto :goto_3e
.line 1598
:catch_39
move-exception v2
.line 1599
.restart local v2 # "e":Ljava/io/IOException;
invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
goto :goto_3f
.line 1600
.end local v2 # "e":Ljava/io/IOException;
:cond_3e
:goto_3e
nop
.line 1601
:goto_3f
goto :goto_41
:goto_40
throw v0
:goto_41
goto :goto_40
.end method
.method private static getImageType(Ljava/io/InputStream;)Lcom/blankj/utilcode/util/ImageUtils$ImageType;
.registers 5
.param p0, "is" # Ljava/io/InputStream;
.line 1606
const/4 v0, 0x0
if-nez p0, :cond_4
return-object v0
.line 1608
:cond_4
const/16 v1, 0xc
:try_start_6
new-array v1, v1, [B
.line 1609
.local v1, "bytes":[B
invoke-virtual {p0, v1}, Ljava/io/InputStream;->read([B)I
move-result v2
const/4 v3, -0x1
if-eq v2, v3, :cond_13
invoke-static {v1}, Lcom/blankj/utilcode/util/ImageUtils;->getImageType([B)Lcom/blankj/utilcode/util/ImageUtils$ImageType;
move-result-object v0
:try_end_13
.catch Ljava/io/IOException; {:try_start_6 .. :try_end_13} :catch_14
:cond_13
return-object v0
.line 1610
.end local v1 # "bytes":[B
:catch_14
move-exception v1
.line 1611
.local v1, "e":Ljava/io/IOException;
invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V
.line 1612
return-object v0
.end method
.method public static getImageType(Ljava/lang/String;)Lcom/blankj/utilcode/util/ImageUtils$ImageType;
.registers 2
.param p0, "filePath" # Ljava/lang/String;
.line 1573
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/ImageUtils;->getImageType(Ljava/io/File;)Lcom/blankj/utilcode/util/ImageUtils$ImageType;
move-result-object v0
return-object v0
.end method
.method private static getImageType([B)Lcom/blankj/utilcode/util/ImageUtils$ImageType;
.registers 3
.param p0, "bytes" # [B
.line 1617
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->bytes2HexString([B)Ljava/lang/String;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/String;->toUpperCase()Ljava/lang/String;
move-result-object v0
.line 1618
.local v0, "type":Ljava/lang/String;
const-string v1, "FFD8FF"
invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_13
.line 1619
sget-object v1, Lcom/blankj/utilcode/util/ImageUtils$ImageType;->TYPE_JPG:Lcom/blankj/utilcode/util/ImageUtils$ImageType;
return-object v1
.line 1620
:cond_13
const-string v1, "89504E47"
invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_1e
.line 1621
sget-object v1, Lcom/blankj/utilcode/util/ImageUtils$ImageType;->TYPE_PNG:Lcom/blankj/utilcode/util/ImageUtils$ImageType;
return-object v1
.line 1622
:cond_1e
const-string v1, "47494638"
invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_29
.line 1623
sget-object v1, Lcom/blankj/utilcode/util/ImageUtils$ImageType;->TYPE_GIF:Lcom/blankj/utilcode/util/ImageUtils$ImageType;
return-object v1
.line 1624
:cond_29
const-string v1, "49492A00"
invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v1
if-nez v1, :cond_6f
const-string v1, "4D4D002A"
invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_3a
goto :goto_6f
.line 1626
:cond_3a
const-string v1, "424D"
invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_45
.line 1627
sget-object v1, Lcom/blankj/utilcode/util/ImageUtils$ImageType;->TYPE_BMP:Lcom/blankj/utilcode/util/ImageUtils$ImageType;
return-object v1
.line 1628
:cond_45
const-string v1, "52494646"
invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v1
if-eqz v1, :cond_58
const-string v1, "57454250"
invoke-virtual {v0, v1}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v1
if-eqz v1, :cond_58
.line 1629
sget-object v1, Lcom/blankj/utilcode/util/ImageUtils$ImageType;->TYPE_WEBP:Lcom/blankj/utilcode/util/ImageUtils$ImageType;
return-object v1
.line 1630
:cond_58
const-string v1, "00000100"
invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v1
if-nez v1, :cond_6c
const-string v1, "00000200"
invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_69
goto :goto_6c
.line 1633
:cond_69
sget-object v1, Lcom/blankj/utilcode/util/ImageUtils$ImageType;->TYPE_UNKNOWN:Lcom/blankj/utilcode/util/ImageUtils$ImageType;
return-object v1
.line 1631
:cond_6c
:goto_6c
sget-object v1, Lcom/blankj/utilcode/util/ImageUtils$ImageType;->TYPE_ICO:Lcom/blankj/utilcode/util/ImageUtils$ImageType;
return-object v1
.line 1625
:cond_6f
:goto_6f
sget-object v1, Lcom/blankj/utilcode/util/ImageUtils$ImageType;->TYPE_TIFF:Lcom/blankj/utilcode/util/ImageUtils$ImageType;
return-object v1
.end method
.method public static getRotateDegree(Ljava/lang/String;)I
.registers 4
.param p0, "filePath" # Ljava/lang/String;
.line 620
:try_start_0
new-instance v0, Landroid/media/ExifInterface;
invoke-direct {v0, p0}, Landroid/media/ExifInterface;-><init>(Ljava/lang/String;)V
.line 621
.local v0, "exifInterface":Landroid/media/ExifInterface;
const-string v1, "Orientation"
const/4 v2, 0x1
invoke-virtual {v0, v1, v2}, Landroid/media/ExifInterface;->getAttributeInt(Ljava/lang/String;I)I
move-result v1
:try_end_c
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_c} :catch_21
.line 625
.local v1, "orientation":I
const/4 v2, 0x3
if-eq v1, v2, :cond_1e
const/4 v2, 0x6
if-eq v1, v2, :cond_1b
const/16 v2, 0x8
if-eq v1, v2, :cond_18
.line 633
const/4 v2, 0x0
return v2
.line 631
:cond_18
const/16 v2, 0x10e
return v2
.line 627
:cond_1b
const/16 v2, 0x5a
return v2
.line 629
:cond_1e
const/16 v2, 0xb4
return v2
.line 635
.end local v0 # "exifInterface":Landroid/media/ExifInterface;
.end local v1 # "orientation":I
:catch_21
move-exception v0
.line 636
.local v0, "e":Ljava/io/IOException;
invoke-virtual {v0}, Ljava/io/IOException;->printStackTrace()V
.line 637
const/4 v1, -0x1
return v1
.end method
.method public static getSize(Ljava/io/File;)[I
.registers 6
.param p0, "file" # Ljava/io/File;
.line 1929
const/4 v0, 0x2
if-nez p0, :cond_9
new-array v0, v0, [I
fill-array-data v0, :array_24
return-object v0
.line 1930
:cond_9
new-instance v1, Landroid/graphics/BitmapFactory$Options;
invoke-direct {v1}, Landroid/graphics/BitmapFactory$Options;-><init>()V
.line 1931
.local v1, "opts":Landroid/graphics/BitmapFactory$Options;
const/4 v2, 0x1
iput-boolean v2, v1, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 1932
invoke-virtual {p0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v3
invoke-static {v3, v1}, Landroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
.line 1933
new-array v0, v0, [I
const/4 v3, 0x0
iget v4, v1, Landroid/graphics/BitmapFactory$Options;->outWidth:I
aput v4, v0, v3
iget v3, v1, Landroid/graphics/BitmapFactory$Options;->outHeight:I
aput v3, v0, v2
return-object v0
:array_24
.array-data 4
0x0
0x0
.end array-data
.end method
.method public static getSize(Ljava/lang/String;)[I
.registers 2
.param p0, "filePath" # Ljava/lang/String;
.line 1919
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/ImageUtils;->getSize(Ljava/io/File;)[I
move-result-object v0
return-object v0
.end method
.method private static input2Byte(Ljava/io/InputStream;)[B
.registers 9
.param p0, "is" # Ljava/io/InputStream;
.line 1993
const/4 v0, 0x0
if-nez p0, :cond_4
return-object v0
.line 1995
:cond_4
:try_start_4
new-instance v1, Ljava/io/ByteArrayOutputStream;
invoke-direct {v1}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 1996
.local v1, "os":Ljava/io/ByteArrayOutputStream;
const/16 v2, 0x400
new-array v3, v2, [B
.line 1998
.local v3, "b":[B
:goto_d
const/4 v4, 0x0
invoke-virtual {p0, v3, v4, v2}, Ljava/io/InputStream;->read([BII)I
move-result v5
move v6, v5
.local v6, "len":I
const/4 v7, -0x1
if-eq v5, v7, :cond_1a
.line 1999
invoke-virtual {v1, v3, v4, v6}, Ljava/io/ByteArrayOutputStream;->write([BII)V
goto :goto_d
.line 2001
:cond_1a
invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v0
:try_end_1e
.catch Ljava/io/IOException; {:try_start_4 .. :try_end_1e} :catch_29
.catchall {:try_start_4 .. :try_end_1e} :catchall_27
.line 2007
:try_start_1e
invoke-virtual {p0}, Ljava/io/InputStream;->close()V
:try_end_21
.catch Ljava/io/IOException; {:try_start_1e .. :try_end_21} :catch_22
.line 2010
goto :goto_26
.line 2008
:catch_22
move-exception v2
.line 2009
.local v2, "e":Ljava/io/IOException;
invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
.line 2001
.end local v2 # "e":Ljava/io/IOException;
:goto_26
return-object v0
.line 2006
.end local v1 # "os":Ljava/io/ByteArrayOutputStream;
.end local v3 # "b":[B
.end local v6 # "len":I
:catchall_27
move-exception v0
goto :goto_37
.line 2002
:catch_29
move-exception v1
.line 2003
.local v1, "e":Ljava/io/IOException;
:try_start_2a
invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V
:try_end_2d
.catchall {:try_start_2a .. :try_end_2d} :catchall_27
.line 2004
nop
.line 2007
:try_start_2e
invoke-virtual {p0}, Ljava/io/InputStream;->close()V
:try_end_31
.catch Ljava/io/IOException; {:try_start_2e .. :try_end_31} :catch_32
.line 2010
goto :goto_36
.line 2008
:catch_32
move-exception v2
.line 2009
.restart local v2 # "e":Ljava/io/IOException;
invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
.line 2004
.end local v2 # "e":Ljava/io/IOException;
:goto_36
return-object v0
.line 2007
.end local v1 # "e":Ljava/io/IOException;
:goto_37
:try_start_37
invoke-virtual {p0}, Ljava/io/InputStream;->close()V
:try_end_3a
.catch Ljava/io/IOException; {:try_start_37 .. :try_end_3a} :catch_3b
.line 2010
goto :goto_3f
.line 2008
:catch_3b
move-exception v1
.line 2009
.restart local v1 # "e":Ljava/io/IOException;
invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V
.line 2011
.end local v1 # "e":Ljava/io/IOException;
:goto_3f
goto :goto_41
:goto_40
throw v0
:goto_41
goto :goto_40
.end method
.method private static isBMP([B)Z
.registers 5
.param p0, "b" # [B
.line 1674
array-length v0, p0
const/4 v1, 0x1
const/4 v2, 0x0
const/4 v3, 0x2
if-lt v0, v3, :cond_13
aget-byte v0, p0, v2
const/16 v3, 0x42
if-ne v0, v3, :cond_13
aget-byte v0, p0, v1
const/16 v3, 0x4d
if-ne v0, v3, :cond_13
goto :goto_14
:cond_13
const/4 v1, 0x0
:goto_14
return v1
.end method
.method private static isEmptyBitmap(Landroid/graphics/Bitmap;)Z
.registers 2
.param p0, "src" # Landroid/graphics/Bitmap;
.line 1679
if-eqz p0, :cond_11
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v0
if-eqz v0, :cond_11
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v0
if-nez v0, :cond_f
goto :goto_11
:cond_f
const/4 v0, 0x0
goto :goto_12
:cond_11
:goto_11
const/4 v0, 0x1
:goto_12
return v0
.end method
.method private static isGIF([B)Z
.registers 6
.param p0, "b" # [B
.line 1659
array-length v0, p0
const/4 v1, 0x1
const/4 v2, 0x0
const/4 v3, 0x6
if-lt v0, v3, :cond_35
aget-byte v0, p0, v2
const/16 v3, 0x47
if-ne v0, v3, :cond_35
aget-byte v0, p0, v1
const/16 v3, 0x49
if-ne v0, v3, :cond_35
const/4 v0, 0x2
aget-byte v0, p0, v0
const/16 v3, 0x46
if-ne v0, v3, :cond_35
const/4 v0, 0x3
aget-byte v0, p0, v0
const/16 v3, 0x38
if-ne v0, v3, :cond_35
const/4 v0, 0x4
aget-byte v3, p0, v0
const/16 v4, 0x37
if-eq v3, v4, :cond_2d
aget-byte v0, p0, v0
const/16 v3, 0x39
if-ne v0, v3, :cond_35
:cond_2d
const/4 v0, 0x5
aget-byte v0, p0, v0
const/16 v3, 0x61
if-ne v0, v3, :cond_35
goto :goto_36
:cond_35
const/4 v1, 0x0
:goto_36
return v1
.end method
.method public static isImage(Ljava/io/File;)Z
.registers 2
.param p0, "file" # Ljava/io/File;
.line 1543
if-eqz p0, :cond_12
invoke-virtual {p0}, Ljava/io/File;->exists()Z
move-result v0
if-nez v0, :cond_9
goto :goto_12
.line 1546
:cond_9
invoke-virtual {p0}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/ImageUtils;->isImage(Ljava/lang/String;)Z
move-result v0
return v0
.line 1544
:cond_12
:goto_12
const/4 v0, 0x0
return v0
.end method
.method public static isImage(Ljava/lang/String;)Z
.registers 7
.param p0, "filePath" # Ljava/lang/String;
.line 1556
new-instance v0, Landroid/graphics/BitmapFactory$Options;
invoke-direct {v0}, Landroid/graphics/BitmapFactory$Options;-><init>()V
.line 1557
.local v0, "options":Landroid/graphics/BitmapFactory$Options;
const/4 v1, 0x1
iput-boolean v1, v0, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 1559
const/4 v2, 0x0
:try_start_9
invoke-static {p0, v0}, Landroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
move-result-object v3
.line 1560
.local v3, "bitmap":Landroid/graphics/Bitmap;
iget v4, v0, Landroid/graphics/BitmapFactory$Options;->outWidth:I
const/4 v5, -0x1
if-eq v4, v5, :cond_17
iget v4, v0, Landroid/graphics/BitmapFactory$Options;->outHeight:I
:try_end_14
.catch Ljava/lang/Exception; {:try_start_9 .. :try_end_14} :catch_19
if-eq v4, v5, :cond_17
goto :goto_18
:cond_17
const/4 v1, 0x0
:goto_18
return v1
.line 1561
.end local v3 # "bitmap":Landroid/graphics/Bitmap;
:catch_19
move-exception v1
.line 1562
.local v1, "e":Ljava/lang/Exception;
return v2
.end method
.method private static isJPEG([B)Z
.registers 5
.param p0, "b" # [B
.line 1654
array-length v0, p0
const/4 v1, 0x1
const/4 v2, 0x0
const/4 v3, 0x2
if-lt v0, v3, :cond_12
aget-byte v0, p0, v2
const/4 v3, -0x1
if-ne v0, v3, :cond_12
aget-byte v0, p0, v1
const/16 v3, -0x28
if-ne v0, v3, :cond_12
goto :goto_13
:cond_12
const/4 v1, 0x0
:goto_13
return v1
.end method
.method private static isPNG([B)Z
.registers 6
.param p0, "b" # [B
.line 1666
array-length v0, p0
const/4 v1, 0x1
const/4 v2, 0x0
const/16 v3, 0x8
if-lt v0, v3, :cond_3c
aget-byte v0, p0, v2
const/16 v3, -0x77
if-ne v0, v3, :cond_3c
aget-byte v0, p0, v1
const/16 v3, 0x50
if-ne v0, v3, :cond_3c
const/4 v0, 0x2
aget-byte v0, p0, v0
const/16 v3, 0x4e
if-ne v0, v3, :cond_3c
const/4 v0, 0x3
aget-byte v0, p0, v0
const/16 v3, 0x47
if-ne v0, v3, :cond_3c
const/4 v0, 0x4
aget-byte v0, p0, v0
const/16 v3, 0xd
if-ne v0, v3, :cond_3c
const/4 v0, 0x5
aget-byte v0, p0, v0
const/16 v3, 0xa
if-ne v0, v3, :cond_3c
const/4 v0, 0x6
aget-byte v0, p0, v0
const/16 v4, 0x1a
if-ne v0, v4, :cond_3c
const/4 v0, 0x7
aget-byte v0, p0, v0
if-ne v0, v3, :cond_3c
goto :goto_3d
:cond_3c
const/4 v1, 0x0
:goto_3d
return v1
.end method
.method private static isSpace(Ljava/lang/String;)Z
.registers 5
.param p0, "s" # Ljava/lang/String;
.line 1983
const/4 v0, 0x1
if-nez p0, :cond_4
return v0
.line 1984
:cond_4
const/4 v1, 0x0
.local v1, "i":I
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v2
.local v2, "len":I
:goto_9
if-ge v1, v2, :cond_1a
.line 1985
invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C
move-result v3
invoke-static {v3}, Ljava/lang/Character;->isWhitespace(C)Z
move-result v3
if-nez v3, :cond_17
.line 1986
const/4 v0, 0x0
return v0
.line 1984
:cond_17
add-int/lit8 v1, v1, 0x1
goto :goto_9
.line 1989
.end local v1 # "i":I
.end local v2 # "len":I
:cond_1a
return v0
.end method
.method public static renderScriptBlur(Landroid/graphics/Bitmap;F)Landroid/graphics/Bitmap;
.registers 3
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "radius" # F
.line 1204
const/4 v0, 0x0
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/ImageUtils;->renderScriptBlur(Landroid/graphics/Bitmap;FZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static renderScriptBlur(Landroid/graphics/Bitmap;FZ)Landroid/graphics/Bitmap;
.registers 8
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "radius" # F
.param p2, "recycle" # Z
.line 1221
const/4 v0, 0x0
.line 1222
.local v0, "rs":Landroid/renderscript/RenderScript;
const/4 v1, 0x1
if-eqz p2, :cond_6
move-object v2, p0
goto :goto_e
:cond_6
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getConfig()Landroid/graphics/Bitmap$Config;
move-result-object v2
invoke-virtual {p0, v2, v1}, Landroid/graphics/Bitmap;->copy(Landroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap;
move-result-object v2
.line 1224
.local v2, "ret":Landroid/graphics/Bitmap;
:goto_e
:try_start_e
invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application;
move-result-object v3
invoke-static {v3}, Landroid/renderscript/RenderScript;->create(Landroid/content/Context;)Landroid/renderscript/RenderScript;
move-result-object v3
move-object v0, v3
.line 1225
new-instance v3, Landroid/renderscript/RenderScript$RSMessageHandler;
invoke-direct {v3}, Landroid/renderscript/RenderScript$RSMessageHandler;-><init>()V
invoke-virtual {v0, v3}, Landroid/renderscript/RenderScript;->setMessageHandler(Landroid/renderscript/RenderScript$RSMessageHandler;)V
.line 1226
sget-object v3, Landroid/renderscript/Allocation$MipmapControl;->MIPMAP_NONE:Landroid/renderscript/Allocation$MipmapControl;
invoke-static {v0, v2, v3, v1}, Landroid/renderscript/Allocation;->createFromBitmap(Landroid/renderscript/RenderScript;Landroid/graphics/Bitmap;Landroid/renderscript/Allocation$MipmapControl;I)Landroid/renderscript/Allocation;
move-result-object v1
.line 1230
.local v1, "input":Landroid/renderscript/Allocation;
invoke-virtual {v1}, Landroid/renderscript/Allocation;->getType()Landroid/renderscript/Type;
move-result-object v3
invoke-static {v0, v3}, Landroid/renderscript/Allocation;->createTyped(Landroid/renderscript/RenderScript;Landroid/renderscript/Type;)Landroid/renderscript/Allocation;
move-result-object v3
.line 1231
.local v3, "output":Landroid/renderscript/Allocation;
invoke-static {v0}, Landroid/renderscript/Element;->U8_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
move-result-object v4
invoke-static {v0, v4}, Landroid/renderscript/ScriptIntrinsicBlur;->create(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)Landroid/renderscript/ScriptIntrinsicBlur;
move-result-object v4
.line 1232
.local v4, "blurScript":Landroid/renderscript/ScriptIntrinsicBlur;
invoke-virtual {v4, v1}, Landroid/renderscript/ScriptIntrinsicBlur;->setInput(Landroid/renderscript/Allocation;)V
.line 1233
invoke-virtual {v4, p1}, Landroid/renderscript/ScriptIntrinsicBlur;->setRadius(F)V
.line 1234
invoke-virtual {v4, v3}, Landroid/renderscript/ScriptIntrinsicBlur;->forEach(Landroid/renderscript/Allocation;)V
.line 1235
invoke-virtual {v3, v2}, Landroid/renderscript/Allocation;->copyTo(Landroid/graphics/Bitmap;)V
:try_end_41
.catchall {:try_start_e .. :try_end_41} :catchall_47
.line 1237
.end local v1 # "input":Landroid/renderscript/Allocation;
.end local v3 # "output":Landroid/renderscript/Allocation;
.end local v4 # "blurScript":Landroid/renderscript/ScriptIntrinsicBlur;
if-eqz v0, :cond_46
.line 1238
invoke-virtual {v0}, Landroid/renderscript/RenderScript;->destroy()V
.line 1241
:cond_46
return-object v2
.line 1237
:catchall_47
move-exception v1
if-eqz v0, :cond_4d
.line 1238
invoke-virtual {v0}, Landroid/renderscript/RenderScript;->destroy()V
.line 1240
:cond_4d
throw v1
.end method
.method public static rotate(Landroid/graphics/Bitmap;IFF)Landroid/graphics/Bitmap;
.registers 5
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "degrees" # I
.param p2, "px" # F
.param p3, "py" # F
.line 585
const/4 v0, 0x0
invoke-static {p0, p1, p2, p3, v0}, Lcom/blankj/utilcode/util/ImageUtils;->rotate(Landroid/graphics/Bitmap;IFFZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static rotate(Landroid/graphics/Bitmap;IFFZ)Landroid/graphics/Bitmap;
.registers 13
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "degrees" # I
.param p2, "px" # F
.param p3, "py" # F
.param p4, "recycle" # Z
.line 603
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_8
const/4 v0, 0x0
return-object v0
.line 604
:cond_8
if-nez p1, :cond_b
return-object p0
.line 605
:cond_b
new-instance v0, Landroid/graphics/Matrix;
invoke-direct {v0}, Landroid/graphics/Matrix;-><init>()V
.line 606
.local v0, "matrix":Landroid/graphics/Matrix;
int-to-float v1, p1
invoke-virtual {v0, v1, p2, p3}, Landroid/graphics/Matrix;->setRotate(FFF)V
.line 607
const/4 v2, 0x0
const/4 v3, 0x0
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v4
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v5
const/4 v7, 0x1
move-object v1, p0
move-object v6, v0
invoke-static/range {v1 .. v7}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap;
move-result-object v1
.line 608
.local v1, "ret":Landroid/graphics/Bitmap;
if-eqz p4, :cond_32
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v2
if-nez v2, :cond_32
if-eq v1, p0, :cond_32
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
.line 609
:cond_32
return-object v1
.end method
.method public static save(Landroid/graphics/Bitmap;Ljava/io/File;Landroid/graphics/Bitmap$CompressFormat;)Z
.registers 4
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "file" # Ljava/io/File;
.param p2, "format" # Landroid/graphics/Bitmap$CompressFormat;
.line 1483
const/4 v0, 0x0
invoke-static {p0, p1, p2, v0}, Lcom/blankj/utilcode/util/ImageUtils;->save(Landroid/graphics/Bitmap;Ljava/io/File;Landroid/graphics/Bitmap$CompressFormat;Z)Z
move-result v0
return v0
.end method
.method public static save(Landroid/graphics/Bitmap;Ljava/io/File;Landroid/graphics/Bitmap$CompressFormat;Z)Z
.registers 8
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "file" # Ljava/io/File;
.param p2, "format" # Landroid/graphics/Bitmap$CompressFormat;
.param p3, "recycle" # Z
.line 1515
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-nez v0, :cond_50
invoke-static {p1}, Lcom/blankj/utilcode/util/ImageUtils;->createFileByDeleteOldFile(Ljava/io/File;)Z
move-result v0
if-nez v0, :cond_d
goto :goto_50
.line 1516
:cond_d
const/4 v0, 0x0
.line 1517
.local v0, "os":Ljava/io/OutputStream;
const/4 v1, 0x0
.line 1519
.local v1, "ret":Z
:try_start_f
new-instance v2, Ljava/io/BufferedOutputStream;
new-instance v3, Ljava/io/FileOutputStream;
invoke-direct {v3, p1}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
invoke-direct {v2, v3}, Ljava/io/BufferedOutputStream;-><init>(Ljava/io/OutputStream;)V
move-object v0, v2
.line 1520
const/16 v2, 0x64
invoke-virtual {p0, p2, v2, v0}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
move-result v2
move v1, v2
.line 1521
if-eqz p3, :cond_2c
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v2
if-nez v2, :cond_2c
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
:try_end_2c
.catch Ljava/io/IOException; {:try_start_f .. :try_end_2c} :catch_38
.catchall {:try_start_f .. :try_end_2c} :catchall_36
.line 1526
:cond_2c
nop
.line 1527
:try_start_2d
invoke-virtual {v0}, Ljava/io/OutputStream;->close()V
:try_end_30
.catch Ljava/io/IOException; {:try_start_2d .. :try_end_30} :catch_31
.line 1531
:cond_30
:goto_30
goto :goto_42
.line 1529
:catch_31
move-exception v2
.line 1530
.local v2, "e":Ljava/io/IOException;
invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
.line 1532
.end local v2 # "e":Ljava/io/IOException;
goto :goto_42
.line 1525
:catchall_36
move-exception v2
goto :goto_43
.line 1522
:catch_38
move-exception v2
.line 1523
.restart local v2 # "e":Ljava/io/IOException;
:try_start_39
invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
:try_end_3c
.catchall {:try_start_39 .. :try_end_3c} :catchall_36
.line 1526
.end local v2 # "e":Ljava/io/IOException;
if-eqz v0, :cond_30
.line 1527
:try_start_3e
invoke-virtual {v0}, Ljava/io/OutputStream;->close()V
:try_end_41
.catch Ljava/io/IOException; {:try_start_3e .. :try_end_41} :catch_31
goto :goto_30
.line 1533
:goto_42
return v1
.line 1526
:goto_43
if-eqz v0, :cond_4e
.line 1527
:try_start_45
invoke-virtual {v0}, Ljava/io/OutputStream;->close()V
:try_end_48
.catch Ljava/io/IOException; {:try_start_45 .. :try_end_48} :catch_49
goto :goto_4e
.line 1529
:catch_49
move-exception v3
.line 1530
.local v3, "e":Ljava/io/IOException;
invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V
goto :goto_4f
.line 1531
.end local v3 # "e":Ljava/io/IOException;
:cond_4e
:goto_4e
nop
.line 1532
:goto_4f
throw v2
.line 1515
.end local v0 # "os":Ljava/io/OutputStream;
.end local v1 # "ret":Z
:cond_50
:goto_50
const/4 v0, 0x0
return v0
.end method
.method public static save(Landroid/graphics/Bitmap;Ljava/lang/String;Landroid/graphics/Bitmap$CompressFormat;)Z
.registers 5
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "filePath" # Ljava/lang/String;
.param p2, "format" # Landroid/graphics/Bitmap$CompressFormat;
.line 1471
invoke-static {p1}, Lcom/blankj/utilcode/util/ImageUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
const/4 v1, 0x0
invoke-static {p0, v0, p2, v1}, Lcom/blankj/utilcode/util/ImageUtils;->save(Landroid/graphics/Bitmap;Ljava/io/File;Landroid/graphics/Bitmap$CompressFormat;Z)Z
move-result v0
return v0
.end method
.method public static save(Landroid/graphics/Bitmap;Ljava/lang/String;Landroid/graphics/Bitmap$CompressFormat;Z)Z
.registers 5
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "filePath" # Ljava/lang/String;
.param p2, "format" # Landroid/graphics/Bitmap$CompressFormat;
.param p3, "recycle" # Z
.line 1499
invoke-static {p1}, Lcom/blankj/utilcode/util/ImageUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {p0, v0, p2, p3}, Lcom/blankj/utilcode/util/ImageUtils;->save(Landroid/graphics/Bitmap;Ljava/io/File;Landroid/graphics/Bitmap$CompressFormat;Z)Z
move-result v0
return v0
.end method
.method public static scale(Landroid/graphics/Bitmap;FF)Landroid/graphics/Bitmap;
.registers 4
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "scaleWidth" # F
.param p2, "scaleHeight" # F
.line 436
const/4 v0, 0x0
invoke-static {p0, p1, p2, v0}, Lcom/blankj/utilcode/util/ImageUtils;->scale(Landroid/graphics/Bitmap;FFZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static scale(Landroid/graphics/Bitmap;FFZ)Landroid/graphics/Bitmap;
.registers 12
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "scaleWidth" # F
.param p2, "scaleHeight" # F
.param p3, "recycle" # Z
.line 452
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_8
const/4 v0, 0x0
return-object v0
.line 453
:cond_8
new-instance v0, Landroid/graphics/Matrix;
invoke-direct {v0}, Landroid/graphics/Matrix;-><init>()V
.line 454
.local v0, "matrix":Landroid/graphics/Matrix;
invoke-virtual {v0, p1, p2}, Landroid/graphics/Matrix;->setScale(FF)V
.line 455
const/4 v2, 0x0
const/4 v3, 0x0
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v4
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v5
const/4 v7, 0x1
move-object v1, p0
move-object v6, v0
invoke-static/range {v1 .. v7}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap;
move-result-object v1
.line 456
.local v1, "ret":Landroid/graphics/Bitmap;
if-eqz p3, :cond_2e
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v2
if-nez v2, :cond_2e
if-eq v1, p0, :cond_2e
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
.line 457
:cond_2e
return-object v1
.end method
.method public static scale(Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap;
.registers 4
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "newWidth" # I
.param p2, "newHeight" # I
.line 405
const/4 v0, 0x0
invoke-static {p0, p1, p2, v0}, Lcom/blankj/utilcode/util/ImageUtils;->scale(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static scale(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
.registers 6
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "newWidth" # I
.param p2, "newHeight" # I
.param p3, "recycle" # Z
.line 421
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_8
const/4 v0, 0x0
return-object v0
.line 422
:cond_8
const/4 v0, 0x1
invoke-static {p0, p1, p2, v0}, Landroid/graphics/Bitmap;->createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
move-result-object v0
.line 423
.local v0, "ret":Landroid/graphics/Bitmap;
if-eqz p3, :cond_1a
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v1
if-nez v1, :cond_1a
if-eq v0, p0, :cond_1a
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
.line 424
:cond_1a
return-object v0
.end method
.method public static skew(Landroid/graphics/Bitmap;FF)Landroid/graphics/Bitmap;
.registers 9
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "kx" # F
.param p2, "ky" # F
.line 510
const/4 v3, 0x0
const/4 v4, 0x0
const/4 v5, 0x0
move-object v0, p0
move v1, p1
move v2, p2
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/ImageUtils;->skew(Landroid/graphics/Bitmap;FFFFZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static skew(Landroid/graphics/Bitmap;FFFF)Landroid/graphics/Bitmap;
.registers 11
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "kx" # F
.param p2, "ky" # F
.param p3, "px" # F
.param p4, "py" # F
.line 544
const/4 v5, 0x0
move-object v0, p0
move v1, p1
move v2, p2
move v3, p3
move v4, p4
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/ImageUtils;->skew(Landroid/graphics/Bitmap;FFFFZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static skew(Landroid/graphics/Bitmap;FFFFZ)Landroid/graphics/Bitmap;
.registers 14
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "kx" # F
.param p2, "ky" # F
.param p3, "px" # F
.param p4, "py" # F
.param p5, "recycle" # Z
.line 564
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_8
const/4 v0, 0x0
return-object v0
.line 565
:cond_8
new-instance v0, Landroid/graphics/Matrix;
invoke-direct {v0}, Landroid/graphics/Matrix;-><init>()V
.line 566
.local v0, "matrix":Landroid/graphics/Matrix;
invoke-virtual {v0, p1, p2, p3, p4}, Landroid/graphics/Matrix;->setSkew(FFFF)V
.line 567
const/4 v2, 0x0
const/4 v3, 0x0
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v4
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v5
const/4 v7, 0x1
move-object v1, p0
move-object v6, v0
invoke-static/range {v1 .. v7}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap;
move-result-object v1
.line 568
.local v1, "ret":Landroid/graphics/Bitmap;
if-eqz p5, :cond_2e
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v2
if-nez v2, :cond_2e
if-eq v1, p0, :cond_2e
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
.line 569
:cond_2e
return-object v1
.end method
.method public static skew(Landroid/graphics/Bitmap;FFZ)Landroid/graphics/Bitmap;
.registers 10
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "kx" # F
.param p2, "ky" # F
.param p3, "recycle" # Z
.line 526
const/4 v3, 0x0
const/4 v4, 0x0
move-object v0, p0
move v1, p1
move v2, p2
move v5, p3
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/ImageUtils;->skew(Landroid/graphics/Bitmap;FFFFZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static stackBlur(Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap;
.registers 3
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "radius" # I
.line 1252
const/4 v0, 0x0
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/ImageUtils;->stackBlur(Landroid/graphics/Bitmap;IZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static stackBlur(Landroid/graphics/Bitmap;IZ)Landroid/graphics/Bitmap;
.registers 45
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "radius" # I
.param p2, "recycle" # Z
.line 1264
const/4 v0, 0x1
if-eqz p2, :cond_7
move-object/from16 v1, p0
move-object v2, v1
goto :goto_11
:cond_7
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
.line 1265
.local v1, "ret":Landroid/graphics/Bitmap;
:goto_11
move/from16 v3, p1
if-ge v3, v0, :cond_18
.line 1266
const/4 v3, 0x1
move v11, v3
.end local p1 # "radius":I
.local v3, "radius":I
goto :goto_19
.line 1265
.end local v3 # "radius":I
.restart local p1 # "radius":I
:cond_18
move v11, v3
.line 1268
.end local p1 # "radius":I
.local v11, "radius":I
:goto_19
invoke-virtual {v1}, Landroid/graphics/Bitmap;->getWidth()I
move-result v12
.line 1269
.local v12, "w":I
invoke-virtual {v1}, Landroid/graphics/Bitmap;->getHeight()I
move-result v13
.line 1271
.local v13, "h":I
mul-int v3, v12, v13
new-array v14, v3, [I
.line 1272
.local v14, "pix":[I
const/4 v5, 0x0
const/4 v7, 0x0
const/4 v8, 0x0
move-object v3, v1
move-object v4, v14
move v6, v12
move v9, v12
move v10, v13
invoke-virtual/range {v3 .. v10}, Landroid/graphics/Bitmap;->getPixels([IIIIIII)V
.line 1274
add-int/lit8 v15, v12, -0x1
.line 1275
.local v15, "wm":I
add-int/lit8 v10, v13, -0x1
.line 1276
.local v10, "hm":I
mul-int v9, v12, v13
.line 1277
.local v9, "wh":I
add-int v3, v11, v11
add-int/lit8 v16, v3, 0x1
.line 1279
.local v16, "div":I
new-array v8, v9, [I
.line 1280
.local v8, "r":[I
new-array v7, v9, [I
.line 1281
.local v7, "g":[I
new-array v6, v9, [I
.line 1283
.local v6, "b":[I
invoke-static {v12, v13}, Ljava/lang/Math;->max(II)I
move-result v3
new-array v5, v3, [I
.line 1285
.local v5, "vmin":[I
add-int/lit8 v3, v16, 0x1
shr-int/2addr v3, v0
.line 1286
.local v3, "divsum":I
mul-int v4, v3, v3
.line 1287
.end local v3 # "divsum":I
.local v4, "divsum":I
mul-int/lit16 v3, v4, 0x100
new-array v3, v3, [I
.line 1288
.local v3, "dv":[I
const/16 v17, 0x0
move/from16 v0, v17
.local v0, "i":I
:goto_53
mul-int/lit16 v2, v4, 0x100
if-ge v0, v2, :cond_60
.line 1289
div-int v2, v0, v4
aput v2, v3, v0
.line 1288
add-int/lit8 v0, v0, 0x1
move-object/from16 v2, p0
goto :goto_53
.line 1292
:cond_60
const/4 v2, 0x0
move/from16 v17, v2
.local v17, "yi":I
move/from16 v19, v2
.line 1294
.local v19, "yw":I
const/16 v20, 0x3
const/4 v2, 0x2
move/from16 v21, v0
.end local v0 # "i":I
.local v21, "i":I
new-array v0, v2, [I
const/16 v18, 0x1
aput v20, v0, v18
const/16 v20, 0x0
aput v16, v0, v20
const-class v2, I
invoke-static {v2, v0}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;
move-result-object v0
check-cast v0, [[I
.line 1299
.local v0, "stack":[[I
add-int/lit8 v2, v11, 0x1
.line 1303
.local v2, "r1":I
const/16 v22, 0x0
move/from16 v41, v22
move/from16 v22, v4
move/from16 v4, v41
.local v4, "y":I
.local v22, "divsum":I
:goto_86
if-ge v4, v13, :cond_1d4
.line 1304
const/16 v23, 0x0
move/from16 v24, v23
.local v24, "bsum":I
move/from16 v25, v23
.local v25, "gsum":I
move/from16 v26, v23
.local v26, "rsum":I
move/from16 v27, v23
.local v27, "boutsum":I
move/from16 v28, v23
.local v28, "goutsum":I
move/from16 v29, v23
.local v29, "routsum":I
move/from16 v30, v23
.local v30, "binsum":I
move/from16 v31, v23
.local v31, "ginsum":I
move/from16 v32, v23
.line 1305
.local v32, "rinsum":I
move/from16 v33, v9
.end local v9 # "wh":I
.local v33, "wh":I
neg-int v9, v11
.end local v21 # "i":I
.local v9, "i":I
:goto_9f
const v21, 0xff00
const/high16 v34, 0xff0000
if-gt v9, v11, :cond_11d
.line 1306
move-object/from16 v35, v1
move/from16 v23, v13
const/4 v1, 0x0
.end local v1 # "ret":Landroid/graphics/Bitmap;
.end local v13 # "h":I
.local v23, "h":I
.local v35, "ret":Landroid/graphics/Bitmap;
invoke-static {v9, v1}, Ljava/lang/Math;->max(II)I
move-result v13
invoke-static {v15, v13}, Ljava/lang/Math;->min(II)I
move-result v13
add-int v13, v17, v13
aget v13, v14, v13
.line 1307
.local v13, "p":I
add-int v36, v9, v11
aget-object v36, v0, v36
.line 1308
.local v36, "sir":[I
and-int v34, v13, v34
shr-int/lit8 v34, v34, 0x10
aput v34, v36, v1
.line 1309
and-int v1, v13, v21
shr-int/lit8 v1, v1, 0x8
const/16 v18, 0x1
aput v1, v36, v18
.line 1310
and-int/lit16 v1, v13, 0xff
const/16 v20, 0x2
aput v1, v36, v20
.line 1311
invoke-static {v9}, Ljava/lang/Math;->abs(I)I
move-result v1
sub-int v1, v2, v1
.line 1312
.local v1, "rbs":I
const/16 v21, 0x0
aget v34, v36, v21
mul-int v34, v34, v1
add-int v26, v26, v34
.line 1313
const/16 v18, 0x1
aget v21, v36, v18
mul-int v21, v21, v1
add-int v25, v25, v21
.line 1314
const/16 v20, 0x2
aget v21, v36, v20
mul-int v21, v21, v1
add-int v24, v24, v21
.line 1315
if-lez v9, :cond_102
.line 1316
const/16 v21, 0x0
aget v34, v36, v21
add-int v32, v32, v34
.line 1317
const/16 v18, 0x1
aget v34, v36, v18
add-int v31, v31, v34
.line 1318
const/16 v20, 0x2
aget v34, v36, v20
add-int v30, v30, v34
goto :goto_114
.line 1320
:cond_102
const/16 v18, 0x1
const/16 v20, 0x2
const/16 v21, 0x0
aget v34, v36, v21
add-int v29, v29, v34
.line 1321
aget v21, v36, v18
add-int v28, v28, v21
.line 1322
aget v21, v36, v20
add-int v27, v27, v21
.line 1305
:goto_114
add-int/lit8 v9, v9, 0x1
move/from16 v13, v23
move-object/from16 v1, v35
const/16 v23, 0x0
goto :goto_9f
.line 1325
.end local v23 # "h":I
.end local v35 # "ret":Landroid/graphics/Bitmap;
.end local v36 # "sir":[I
.local v1, "ret":Landroid/graphics/Bitmap;
.local v13, "h":I
:cond_11d
move-object/from16 v35, v1
move/from16 v23, v13
.end local v1 # "ret":Landroid/graphics/Bitmap;
.end local v13 # "h":I
.restart local v23 # "h":I
.restart local v35 # "ret":Landroid/graphics/Bitmap;
move v1, v11
.line 1327
.local v1, "stackpointer":I
const/4 v13, 0x0
.local v13, "x":I
:goto_123
if-ge v13, v12, :cond_1c2
.line 1329
aget v36, v3, v26
aput v36, v8, v17
.line 1330
aget v36, v3, v25
aput v36, v7, v17
.line 1331
aget v36, v3, v24
aput v36, v6, v17
.line 1333
sub-int v26, v26, v29
.line 1334
sub-int v25, v25, v28
.line 1335
sub-int v24, v24, v27
.line 1337
sub-int v36, v1, v11
add-int v36, v36, v16
.line 1338
.local v36, "stackstart":I
rem-int v37, v36, v16
aget-object v37, v0, v37
.line 1340
.local v37, "sir":[I
const/16 v38, 0x0
aget v39, v37, v38
sub-int v29, v29, v39
.line 1341
const/16 v18, 0x1
aget v38, v37, v18
sub-int v28, v28, v38
.line 1342
const/16 v20, 0x2
aget v38, v37, v20
sub-int v27, v27, v38
.line 1344
if-nez v4, :cond_160
.line 1345
add-int v38, v13, v11
move/from16 v39, v9
.end local v9 # "i":I
.local v39, "i":I
add-int/lit8 v9, v38, 0x1
invoke-static {v9, v15}, Ljava/lang/Math;->min(II)I
move-result v9
aput v9, v5, v13
goto :goto_162
.line 1344
.end local v39 # "i":I
.restart local v9 # "i":I
:cond_160
move/from16 v39, v9
.line 1347
.end local v9 # "i":I
.restart local v39 # "i":I
:goto_162
aget v9, v5, v13
add-int v9, v19, v9
aget v9, v14, v9
.line 1349
.local v9, "p":I
and-int v38, v9, v34
shr-int/lit8 v38, v38, 0x10
const/16 v40, 0x0
aput v38, v37, v40
.line 1350
and-int v38, v9, v21
shr-int/lit8 v38, v38, 0x8
const/16 v18, 0x1
aput v38, v37, v18
.line 1351
move/from16 v38, v15
.end local v15 # "wm":I
.local v38, "wm":I
and-int/lit16 v15, v9, 0xff
const/16 v20, 0x2
aput v15, v37, v20
.line 1353
aget v15, v37, v40
add-int v32, v32, v15
.line 1354
aget v15, v37, v18
add-int v31, v31, v15
.line 1355
aget v15, v37, v20
add-int v30, v30, v15
.line 1357
add-int v26, v26, v32
.line 1358
add-int v25, v25, v31
.line 1359
add-int v24, v24, v30
.line 1361
add-int/lit8 v15, v1, 0x1
rem-int v1, v15, v16
.line 1362
rem-int v15, v1, v16
aget-object v15, v0, v15
.line 1364
.end local v37 # "sir":[I
.local v15, "sir":[I
const/16 v37, 0x0
aget v40, v15, v37
add-int v29, v29, v40
.line 1365
const/16 v18, 0x1
aget v40, v15, v18
add-int v28, v28, v40
.line 1366
const/16 v20, 0x2
aget v40, v15, v20
add-int v27, v27, v40
.line 1368
aget v40, v15, v37
sub-int v32, v32, v40
.line 1369
aget v37, v15, v18
sub-int v31, v31, v37
.line 1370
aget v37, v15, v20
sub-int v30, v30, v37
.line 1372
add-int/lit8 v17, v17, 0x1
.line 1327
add-int/lit8 v13, v13, 0x1
move/from16 v15, v38
move/from16 v9, v39
goto/16 :goto_123
.line 1374
.end local v36 # "stackstart":I
.end local v38 # "wm":I
.end local v39 # "i":I
.local v9, "i":I
.local v15, "wm":I
:cond_1c2
move/from16 v39, v9
move/from16 v38, v15
.end local v9 # "i":I
.end local v15 # "wm":I
.restart local v38 # "wm":I
.restart local v39 # "i":I
add-int v19, v19, v12
.line 1303
add-int/lit8 v4, v4, 0x1
move/from16 v13, v23
move/from16 v9, v33
move-object/from16 v1, v35
move/from16 v21, v39
goto/16 :goto_86
.line 1376
.end local v23 # "h":I
.end local v24 # "bsum":I
.end local v25 # "gsum":I
.end local v26 # "rsum":I
.end local v27 # "boutsum":I
.end local v28 # "goutsum":I
.end local v29 # "routsum":I
.end local v30 # "binsum":I
.end local v31 # "ginsum":I
.end local v32 # "rinsum":I
.end local v33 # "wh":I
.end local v35 # "ret":Landroid/graphics/Bitmap;
.end local v38 # "wm":I
.end local v39 # "i":I
.local v1, "ret":Landroid/graphics/Bitmap;
.local v9, "wh":I
.local v13, "h":I
.restart local v15 # "wm":I
.restart local v21 # "i":I
:cond_1d4
move-object/from16 v35, v1
move/from16 v33, v9
move/from16 v23, v13
move/from16 v38, v15
.end local v1 # "ret":Landroid/graphics/Bitmap;
.end local v9 # "wh":I
.end local v13 # "h":I
.end local v15 # "wm":I
.restart local v23 # "h":I
.restart local v33 # "wh":I
.restart local v35 # "ret":Landroid/graphics/Bitmap;
.restart local v38 # "wm":I
const/4 v1, 0x0
move v13, v4
.end local v4 # "y":I
.local v1, "x":I
.local v13, "y":I
:goto_1de
if-ge v1, v12, :cond_32e
.line 1377
const/4 v4, 0x0
move v9, v4
.local v9, "bsum":I
move v15, v4
.local v15, "gsum":I
move/from16 v24, v4
.local v24, "rsum":I
move/from16 v25, v4
.local v25, "boutsum":I
move/from16 v26, v4
.local v26, "goutsum":I
move/from16 v27, v4
.local v27, "routsum":I
move/from16 v28, v4
.local v28, "binsum":I
move/from16 v29, v4
.local v29, "ginsum":I
move/from16 v30, v4
.line 1378
.local v30, "rinsum":I
neg-int v4, v11
mul-int v4, v4, v12
.line 1379
.local v4, "yp":I
move/from16 v31, v4
.end local v4 # "yp":I
.local v31, "yp":I
neg-int v4, v11
move/from16 v21, v24
move/from16 v24, v13
move v13, v4
move/from16 v4, v31
.end local v31 # "yp":I
.restart local v4 # "yp":I
.local v13, "i":I
.local v21, "rsum":I
.local v24, "y":I
:goto_1fe
if-gt v13, v11, :cond_264
.line 1380
move-object/from16 v31, v5
const/4 v5, 0x0
.end local v5 # "vmin":[I
.local v31, "vmin":[I
invoke-static {v5, v4}, Ljava/lang/Math;->max(II)I
move-result v32
add-int v17, v32, v1
.line 1382
add-int v32, v13, v11
aget-object v32, v0, v32
.line 1384
.local v32, "sir":[I
aget v34, v8, v17
aput v34, v32, v5
.line 1385
aget v5, v7, v17
const/16 v18, 0x1
aput v5, v32, v18
.line 1386
aget v5, v6, v17
const/16 v20, 0x2
aput v5, v32, v20
.line 1388
invoke-static {v13}, Ljava/lang/Math;->abs(I)I
move-result v5
sub-int v5, v2, v5
.line 1390
.local v5, "rbs":I
aget v34, v8, v17
mul-int v34, v34, v5
add-int v21, v21, v34
.line 1391
aget v34, v7, v17
mul-int v34, v34, v5
add-int v15, v15, v34
.line 1392
aget v34, v6, v17
mul-int v34, v34, v5
add-int v9, v9, v34
.line 1394
if-lez v13, :cond_24a
.line 1395
const/16 v34, 0x0
aget v36, v32, v34
add-int v30, v30, v36
.line 1396
const/16 v18, 0x1
aget v36, v32, v18
add-int v29, v29, v36
.line 1397
const/16 v20, 0x2
aget v36, v32, v20
add-int v28, v28, v36
goto :goto_25c
.line 1399
:cond_24a
const/16 v18, 0x1
const/16 v20, 0x2
const/16 v34, 0x0
aget v36, v32, v34
add-int v27, v27, v36
.line 1400
aget v34, v32, v18
add-int v26, v26, v34
.line 1401
aget v34, v32, v20
add-int v25, v25, v34
.line 1404
:goto_25c
if-ge v13, v10, :cond_25f
.line 1405
add-int/2addr v4, v12
.line 1379
:cond_25f
add-int/lit8 v13, v13, 0x1
move-object/from16 v5, v31
goto :goto_1fe
.line 1408
.end local v31 # "vmin":[I
.end local v32 # "sir":[I
.local v5, "vmin":[I
:cond_264
move-object/from16 v31, v5
.end local v5 # "vmin":[I
.restart local v31 # "vmin":[I
move v5, v1
.line 1409
.end local v17 # "yi":I
.local v5, "yi":I
move/from16 v17, v11
.line 1410
.local v17, "stackpointer":I
const/16 v24, 0x0
move/from16 v41, v21
move/from16 v21, v5
move/from16 v5, v24
move/from16 v24, v41
.local v5, "y":I
.local v21, "yi":I
.local v24, "rsum":I
:goto_273
move/from16 v32, v13
move/from16 v13, v23
.end local v23 # "h":I
.local v13, "h":I
.local v32, "i":I
if-ge v5, v13, :cond_319
.line 1412
const/high16 v23, -0x1000000
aget v34, v14, v21
and-int v23, v34, v23
aget v34, v3, v24
shl-int/lit8 v34, v34, 0x10
or-int v23, v23, v34
aget v34, v3, v15
shl-int/lit8 v34, v34, 0x8
or-int v23, v23, v34
aget v34, v3, v9
or-int v23, v23, v34
aput v23, v14, v21
.line 1414
sub-int v24, v24, v27
.line 1415
sub-int v15, v15, v26
.line 1416
sub-int v9, v9, v25
.line 1418
sub-int v23, v17, v11
add-int v23, v23, v16
.line 1419
.local v23, "stackstart":I
rem-int v34, v23, v16
aget-object v34, v0, v34
.line 1421
.local v34, "sir":[I
const/16 v36, 0x0
aget v37, v34, v36
sub-int v27, v27, v37
.line 1422
const/16 v18, 0x1
aget v36, v34, v18
sub-int v26, v26, v36
.line 1423
const/16 v20, 0x2
aget v36, v34, v20
sub-int v25, v25, v36
.line 1425
if-nez v1, :cond_2c0
.line 1426
move-object/from16 v36, v3
.end local v3 # "dv":[I
.local v36, "dv":[I
add-int v3, v5, v2
invoke-static {v3, v10}, Ljava/lang/Math;->min(II)I
move-result v3
mul-int v3, v3, v12
aput v3, v31, v5
goto :goto_2c2
.line 1425
.end local v36 # "dv":[I
.restart local v3 # "dv":[I
:cond_2c0
move-object/from16 v36, v3
.line 1428
.end local v3 # "dv":[I
.restart local v36 # "dv":[I
:goto_2c2
aget v3, v31, v5
add-int/2addr v3, v1
.line 1430
.local v3, "p":I
aget v37, v8, v3
const/16 v39, 0x0
aput v37, v34, v39
.line 1431
aget v37, v7, v3
const/16 v18, 0x1
aput v37, v34, v18
.line 1432
aget v37, v6, v3
const/16 v20, 0x2
aput v37, v34, v20
.line 1434
aget v37, v34, v39
add-int v30, v30, v37
.line 1435
aget v37, v34, v18
add-int v29, v29, v37
.line 1436
aget v37, v34, v20
add-int v28, v28, v37
.line 1438
add-int v24, v24, v30
.line 1439
add-int v15, v15, v29
.line 1440
add-int v9, v9, v28
.line 1442
add-int/lit8 v37, v17, 0x1
rem-int v17, v37, v16
.line 1443
aget-object v34, v0, v17
.line 1445
const/16 v37, 0x0
aget v39, v34, v37
add-int v27, v27, v39
.line 1446
const/16 v18, 0x1
aget v39, v34, v18
add-int v26, v26, v39
.line 1447
const/16 v20, 0x2
aget v39, v34, v20
add-int v25, v25, v39
.line 1449
aget v39, v34, v37
sub-int v30, v30, v39
.line 1450
aget v39, v34, v18
sub-int v29, v29, v39
.line 1451
aget v39, v34, v20
sub-int v28, v28, v39
.line 1453
add-int v21, v21, v12
.line 1410
add-int/lit8 v5, v5, 0x1
move/from16 v23, v13
move/from16 v13, v32
move-object/from16 v3, v36
goto/16 :goto_273
.line 1376
.end local v23 # "stackstart":I
.end local v34 # "sir":[I
.end local v36 # "dv":[I
.local v3, "dv":[I
:cond_319
move-object/from16 v36, v3
const/16 v18, 0x1
const/16 v20, 0x2
const/16 v37, 0x0
.end local v3 # "dv":[I
.restart local v36 # "dv":[I
add-int/lit8 v1, v1, 0x1
move/from16 v23, v13
move/from16 v17, v21
move/from16 v21, v32
move v13, v5
move-object/from16 v5, v31
goto/16 :goto_1de
.line 1456
.end local v4 # "yp":I
.end local v9 # "bsum":I
.end local v15 # "gsum":I
.end local v24 # "rsum":I
.end local v25 # "boutsum":I
.end local v26 # "goutsum":I
.end local v27 # "routsum":I
.end local v28 # "binsum":I
.end local v29 # "ginsum":I
.end local v30 # "rinsum":I
.end local v31 # "vmin":[I
.end local v32 # "i":I
.end local v36 # "dv":[I
.restart local v3 # "dv":[I
.local v5, "vmin":[I
.local v13, "y":I
.local v17, "yi":I
.local v21, "i":I
.local v23, "h":I
:cond_32e
move-object/from16 v36, v3
move-object/from16 v31, v5
move/from16 v24, v13
move/from16 v13, v23
.end local v3 # "dv":[I
.end local v5 # "vmin":[I
.end local v23 # "h":I
.local v13, "h":I
.local v24, "y":I
.restart local v31 # "vmin":[I
.restart local v36 # "dv":[I
const/4 v5, 0x0
const/4 v9, 0x0
const/4 v15, 0x0
move-object/from16 v18, v36
.end local v36 # "dv":[I
.local v18, "dv":[I
move-object/from16 v3, v35
move/from16 v20, v22
.end local v22 # "divsum":I
.local v20, "divsum":I
move-object v4, v14
move-object/from16 v22, v31
.end local v31 # "vmin":[I
.local v22, "vmin":[I
move-object/from16 v23, v6
.end local v6 # "b":[I
.local v23, "b":[I
move v6, v12
move-object/from16 v25, v7
.end local v7 # "g":[I
.local v25, "g":[I
move v7, v9
move-object/from16 v26, v8
.end local v8 # "r":[I
.local v26, "r":[I
move v8, v15
move/from16 v15, v33
.end local v33 # "wh":I
.local v15, "wh":I
move v9, v12
move/from16 v27, v10
.end local v10 # "hm":I
.local v27, "hm":I
move v10, v13
invoke-virtual/range {v3 .. v10}, Landroid/graphics/Bitmap;->setPixels([IIIIIII)V
.line 1457
return-object v35
.end method
.method public static toAlpha(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;
.registers 2
.param p0, "src" # Landroid/graphics/Bitmap;
.line 1056
const/4 v0, 0x0
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 v0
return-object v0
.end method
.method public static toAlpha(Landroid/graphics/Bitmap;Ljava/lang/Boolean;)Landroid/graphics/Bitmap;
.registers 4
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "recycle" # Ljava/lang/Boolean;
.line 1067
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_8
const/4 v0, 0x0
return-object v0
.line 1068
:cond_8
invoke-virtual {p0}, Landroid/graphics/Bitmap;->extractAlpha()Landroid/graphics/Bitmap;
move-result-object v0
.line 1069
.local v0, "ret":Landroid/graphics/Bitmap;
invoke-virtual {p1}, Ljava/lang/Boolean;->booleanValue()Z
move-result v1
if-eqz v1, :cond_1d
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v1
if-nez v1, :cond_1d
if-eq v0, p0, :cond_1d
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
.line 1070
:cond_1d
return-object v0
.end method
.method public static toGray(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;
.registers 2
.param p0, "src" # Landroid/graphics/Bitmap;
.line 1080
const/4 v0, 0x0
invoke-static {p0, v0}, Lcom/blankj/utilcode/util/ImageUtils;->toGray(Landroid/graphics/Bitmap;Z)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static toGray(Landroid/graphics/Bitmap;Z)Landroid/graphics/Bitmap;
.registers 8
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "recycle" # Z
.line 1091
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
if-eqz v0, :cond_8
const/4 v0, 0x0
return-object v0
.line 1092
:cond_8
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 1093
.local v0, "ret":Landroid/graphics/Bitmap;
new-instance v1, Landroid/graphics/Canvas;
invoke-direct {v1, v0}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
.line 1094
.local v1, "canvas":Landroid/graphics/Canvas;
new-instance v2, Landroid/graphics/Paint;
invoke-direct {v2}, Landroid/graphics/Paint;-><init>()V
.line 1095
.local v2, "paint":Landroid/graphics/Paint;
new-instance v3, Landroid/graphics/ColorMatrix;
invoke-direct {v3}, Landroid/graphics/ColorMatrix;-><init>()V
.line 1096
.local v3, "colorMatrix":Landroid/graphics/ColorMatrix;
const/4 v4, 0x0
invoke-virtual {v3, v4}, Landroid/graphics/ColorMatrix;->setSaturation(F)V
.line 1097
new-instance v5, Landroid/graphics/ColorMatrixColorFilter;
invoke-direct {v5, v3}, Landroid/graphics/ColorMatrixColorFilter;-><init>(Landroid/graphics/ColorMatrix;)V
.line 1098
.local v5, "colorMatrixColorFilter":Landroid/graphics/ColorMatrixColorFilter;
invoke-virtual {v2, v5}, Landroid/graphics/Paint;->setColorFilter(Landroid/graphics/ColorFilter;)Landroid/graphics/ColorFilter;
.line 1099
invoke-virtual {v1, p0, v4, v4, v2}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V
.line 1100
if-eqz p1, :cond_43
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v4
if-nez v4, :cond_43
if-eq v0, p0, :cond_43
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
.line 1101
:cond_43
return-object v0
.end method
.method public static toRound(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;
.registers 2
.param p0, "src" # Landroid/graphics/Bitmap;
.line 648
const/4 v0, 0x0
invoke-static {p0, v0, v0, v0}, Lcom/blankj/utilcode/util/ImageUtils;->toRound(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static toRound(Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap;
.registers 4
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "borderSize" # I
.param p2, "borderColor" # I
.line 673
const/4 v0, 0x0
invoke-static {p0, p1, p2, v0}, Lcom/blankj/utilcode/util/ImageUtils;->toRound(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static toRound(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
.registers 20
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "borderSize" # I
.param p2, "borderColor" # I
.param p3, "recycle" # Z
.line 689
move-object/from16 v0, p0
move/from16 v1, p1
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_c
return-object v3
.line 690
:cond_c
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v2
.line 691
.local v2, "width":I
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v4
.line 692
.local v4, "height":I
invoke-static {v2, v4}, Ljava/lang/Math;->min(II)I
move-result v5
.line 693
.local v5, "size":I
new-instance v6, Landroid/graphics/Paint;
const/4 v7, 0x1
invoke-direct {v6, v7}, Landroid/graphics/Paint;-><init>(I)V
.line 694
.local v6, "paint":Landroid/graphics/Paint;
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
.line 695
.local v7, "ret":Landroid/graphics/Bitmap;
int-to-float v8, v5
const/high16 v9, 0x40000000 # 2.0f
div-float/2addr v8, v9
.line 696
.local v8, "center":F
new-instance v10, Landroid/graphics/RectF;
int-to-float v11, v2
int-to-float v12, v4
const/4 v13, 0x0
invoke-direct {v10, v13, v13, v11, v12}, Landroid/graphics/RectF;-><init>(FFFF)V
.line 697
.local v10, "rectF":Landroid/graphics/RectF;
sub-int v11, v2, v5
int-to-float v11, v11
div-float/2addr v11, v9
sub-int v12, v4, v5
int-to-float v12, v12
div-float/2addr v12, v9
invoke-virtual {v10, v11, v12}, Landroid/graphics/RectF;->inset(FF)V
.line 698
new-instance v11, Landroid/graphics/Matrix;
invoke-direct {v11}, Landroid/graphics/Matrix;-><init>()V
.line 699
.local v11, "matrix":Landroid/graphics/Matrix;
iget v12, v10, Landroid/graphics/RectF;->left:F
iget v13, v10, Landroid/graphics/RectF;->top:F
invoke-virtual {v11, v12, v13}, Landroid/graphics/Matrix;->setTranslate(FF)V
.line 700
if-eq v2, v4, :cond_54
.line 701
int-to-float v12, v5
int-to-float v13, v2
div-float/2addr v12, v13
int-to-float v13, v5
int-to-float v14, v4
div-float/2addr v13, v14
invoke-virtual {v11, v12, v13}, Landroid/graphics/Matrix;->preScale(FF)Z
.line 703
:cond_54
new-instance v12, Landroid/graphics/BitmapShader;
sget-object v13, Landroid/graphics/Shader$TileMode;->CLAMP:Landroid/graphics/Shader$TileMode;
sget-object v14, Landroid/graphics/Shader$TileMode;->CLAMP:Landroid/graphics/Shader$TileMode;
invoke-direct {v12, v0, v13, v14}, Landroid/graphics/BitmapShader;-><init>(Landroid/graphics/Bitmap;Landroid/graphics/Shader$TileMode;Landroid/graphics/Shader$TileMode;)V
.line 704
.local v12, "shader":Landroid/graphics/BitmapShader;
invoke-virtual {v12, v11}, Landroid/graphics/BitmapShader;->setLocalMatrix(Landroid/graphics/Matrix;)V
.line 705
invoke-virtual {v6, v12}, Landroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader;
.line 706
new-instance v13, Landroid/graphics/Canvas;
invoke-direct {v13, v7}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
.line 707
.local v13, "canvas":Landroid/graphics/Canvas;
invoke-virtual {v13, v10, v8, v8, v6}, Landroid/graphics/Canvas;->drawRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Paint;)V
.line 708
if-lez v1, :cond_8a
.line 709
invoke-virtual {v6, v3}, Landroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader;
.line 710
move/from16 v3, p2
invoke-virtual {v6, v3}, Landroid/graphics/Paint;->setColor(I)V
.line 711
sget-object v14, Landroid/graphics/Paint$Style;->STROKE:Landroid/graphics/Paint$Style;
invoke-virtual {v6, v14}, Landroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V
.line 712
int-to-float v14, v1
invoke-virtual {v6, v14}, Landroid/graphics/Paint;->setStrokeWidth(F)V
.line 713
int-to-float v14, v1
div-float/2addr v14, v9
sub-float v14, v8, v14
.line 714
.local v14, "radius":F
int-to-float v15, v2
div-float/2addr v15, v9
int-to-float v1, v4
div-float/2addr v1, v9
invoke-virtual {v13, v15, v1, v14, v6}, Landroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V
goto :goto_8c
.line 708
.end local v14 # "radius":F
:cond_8a
move/from16 v3, p2
.line 716
:goto_8c
if-eqz p3, :cond_99
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v1
if-nez v1, :cond_99
if-eq v7, v0, :cond_99
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->recycle()V
.line 717
:cond_99
return-object v7
.end method
.method public static toRound(Landroid/graphics/Bitmap;Z)Landroid/graphics/Bitmap;
.registers 3
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "recycle" # Z
.line 659
const/4 v0, 0x0
invoke-static {p0, v0, v0, p1}, Lcom/blankj/utilcode/util/ImageUtils;->toRound(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static toRoundCorner(Landroid/graphics/Bitmap;F)Landroid/graphics/Bitmap;
.registers 3
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "radius" # F
.line 728
const/4 v0, 0x0
invoke-static {p0, p1, v0, v0, v0}, Lcom/blankj/utilcode/util/ImageUtils;->toRoundCorner(Landroid/graphics/Bitmap;FIIZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static toRoundCorner(Landroid/graphics/Bitmap;FII)Landroid/graphics/Bitmap;
.registers 5
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "radius" # F
.param p2, "borderSize" # I
.param p3, "borderColor" # I
.line 758
const/4 v0, 0x0
invoke-static {p0, p1, p2, p3, v0}, Lcom/blankj/utilcode/util/ImageUtils;->toRoundCorner(Landroid/graphics/Bitmap;FIIZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static toRoundCorner(Landroid/graphics/Bitmap;FIIZ)Landroid/graphics/Bitmap;
.registers 16
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "radius" # F
.param p2, "borderSize" # I
.param p3, "borderColor" # I
.param p4, "recycle" # Z
.line 776
invoke-static {p0}, Lcom/blankj/utilcode/util/ImageUtils;->isEmptyBitmap(Landroid/graphics/Bitmap;)Z
move-result v0
const/4 v1, 0x0
if-eqz v0, :cond_8
return-object v1
.line 777
:cond_8
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v0
.line 778
.local v0, "width":I
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v2
.line 779
.local v2, "height":I
new-instance v3, Landroid/graphics/Paint;
const/4 v4, 0x1
invoke-direct {v3, v4}, Landroid/graphics/Paint;-><init>(I)V
.line 780
.local v3, "paint":Landroid/graphics/Paint;
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 781
.local v4, "ret":Landroid/graphics/Bitmap;
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 782
.local v5, "shader":Landroid/graphics/BitmapShader;
invoke-virtual {v3, v5}, Landroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader;
.line 783
new-instance v6, Landroid/graphics/Canvas;
invoke-direct {v6, v4}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
.line 784
.local v6, "canvas":Landroid/graphics/Canvas;
new-instance v7, Landroid/graphics/RectF;
int-to-float v8, v0
int-to-float v9, v2
const/4 v10, 0x0
invoke-direct {v7, v10, v10, v8, v9}, Landroid/graphics/RectF;-><init>(FFFF)V
.line 785
.local v7, "rectF":Landroid/graphics/RectF;
int-to-float v8, p2
const/high16 v9, 0x40000000 # 2.0f
div-float/2addr v8, v9
.line 786
.local v8, "halfBorderSize":F
invoke-virtual {v7, v8, v8}, Landroid/graphics/RectF;->inset(FF)V
.line 787
invoke-virtual {v6, v7, p1, p1, v3}, Landroid/graphics/Canvas;->drawRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Paint;)V
.line 788
if-lez p2, :cond_5a
.line 789
invoke-virtual {v3, v1}, Landroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader;
.line 790
invoke-virtual {v3, p3}, Landroid/graphics/Paint;->setColor(I)V
.line 791
sget-object v1, Landroid/graphics/Paint$Style;->STROKE:Landroid/graphics/Paint$Style;
invoke-virtual {v3, v1}, Landroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V
.line 792
int-to-float v1, p2
invoke-virtual {v3, v1}, Landroid/graphics/Paint;->setStrokeWidth(F)V
.line 793
sget-object v1, Landroid/graphics/Paint$Cap;->ROUND:Landroid/graphics/Paint$Cap;
invoke-virtual {v3, v1}, Landroid/graphics/Paint;->setStrokeCap(Landroid/graphics/Paint$Cap;)V
.line 794
invoke-virtual {v6, v7, p1, p1, v3}, Landroid/graphics/Canvas;->drawRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Paint;)V
.line 796
:cond_5a
if-eqz p4, :cond_67
invoke-virtual {p0}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v1
if-nez v1, :cond_67
if-eq v4, p0, :cond_67
invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
.line 797
:cond_67
return-object v4
.end method
.method public static toRoundCorner(Landroid/graphics/Bitmap;FZ)Landroid/graphics/Bitmap;
.registers 4
.param p0, "src" # Landroid/graphics/Bitmap;
.param p1, "radius" # F
.param p2, "recycle" # Z
.line 742
const/4 v0, 0x0
invoke-static {p0, p1, v0, v0, p2}, Lcom/blankj/utilcode/util/ImageUtils;->toRoundCorner(Landroid/graphics/Bitmap;FIIZ)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static view2Bitmap(Landroid/view/View;)Landroid/graphics/Bitmap;
.registers 7
.param p0, "view" # Landroid/view/View;
.line 159
if-nez p0, :cond_4
const/4 v0, 0x0
return-object v0
.line 160
:cond_4
invoke-virtual {p0}, Landroid/view/View;->isDrawingCacheEnabled()Z
move-result v0
.line 161
.local v0, "drawingCacheEnabled":Z
invoke-virtual {p0}, Landroid/view/View;->willNotCacheDrawing()Z
move-result v1
.line 162
.local v1, "willNotCacheDrawing":Z
const/4 v2, 0x1
invoke-virtual {p0, v2}, Landroid/view/View;->setDrawingCacheEnabled(Z)V
.line 163
const/4 v2, 0x0
invoke-virtual {p0, v2}, Landroid/view/View;->setWillNotCacheDrawing(Z)V
.line 164
invoke-virtual {p0}, Landroid/view/View;->getDrawingCache()Landroid/graphics/Bitmap;
move-result-object v3
.line 166
.local v3, "drawingCache":Landroid/graphics/Bitmap;
if-nez v3, :cond_3c
.line 167
invoke-static {v2, v2}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
move-result v4
.line 168
invoke-static {v2, v2}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
move-result v5
.line 167
invoke-virtual {p0, v4, v5}, Landroid/view/View;->measure(II)V
.line 169
invoke-virtual {p0}, Landroid/view/View;->getMeasuredWidth()I
move-result v4
invoke-virtual {p0}, Landroid/view/View;->getMeasuredHeight()I
move-result v5
invoke-virtual {p0, v2, v2, v4, v5}, Landroid/view/View;->layout(IIII)V
.line 170
invoke-virtual {p0}, Landroid/view/View;->buildDrawingCache()V
.line 171
invoke-virtual {p0}, Landroid/view/View;->getDrawingCache()Landroid/graphics/Bitmap;
move-result-object v2
invoke-static {v2}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;
move-result-object v2
.local v2, "bitmap":Landroid/graphics/Bitmap;
goto :goto_40
.line 173
.end local v2 # "bitmap":Landroid/graphics/Bitmap;
:cond_3c
invoke-static {v3}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;
move-result-object v2
.line 175
.restart local v2 # "bitmap":Landroid/graphics/Bitmap;
:goto_40
invoke-virtual {p0}, Landroid/view/View;->destroyDrawingCache()V
.line 176
invoke-virtual {p0, v1}, Landroid/view/View;->setWillNotCacheDrawing(Z)V
.line 177
invoke-virtual {p0, v0}, Landroid/view/View;->setDrawingCacheEnabled(Z)V
.line 178
return-object v2
.end method