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