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