【问题标题】:How to change the background color of a saved transparent bitmap如何更改保存的透明位图的背景颜色
【发布时间】:2011-06-02 03:14:44
【问题描述】:

我正在将 png 图像打开为位图,对其进行一些修改,然后将其以 jpg 格式保存到磁盘。在 png 有一些透明区域的情况下,它们被保存为黑色。有没有办法更改此默认行为,以便使用不同颜色的背景(例如白色)保存图像?

谢谢

【问题讨论】:

    标签: android bitmap transparency


    【解决方案1】:

    你可以把它画到一个新的位图上,例如

       Bitmap newBitmap = Bitmap.createBitmap(image.getWidth(), 
        image.getHeight(), image.getConfig());
        Canvas canvas = new Canvas(newBitmap);
        canvas.drawColor(Color.WHITE);
        canvas.drawBitmap(image, 0F, 0F, null);
    

    然后保存新的位图

    【讨论】:

    • 当我保存画布图像时...背景颜色变黑了。任何其他改变方式..提前谢谢..
    • 有什么办法可以改变黑色背景色?
    • @RahulBaradia 您可以查看我的答案,它可能会对您有所帮助。
    • @Homen 你可以查看我的答案,它可能对你有帮助。
    【解决方案2】:

    要保存图像并保留其透明区域,您不能将其保存为 JPG,您必须将其保存为 PNG,不仅如此,还要将 setHasAlpha() 的设置设置为 true BEFORE 保存图片,所以会是这样:

    保存前:

    mBitmap.setHasAlpha(true);
    

    保存时,使用您用于保存的任何方法将图像保存为 PNG,例如:

    File file = new File(folderDir, name);
    try {
        file.createNewFile();
    } catch (IOException e) {
        e.printStackTrace();
    }
    FileOutputStream out = new FileOutputStream(file);
    mBitmap.setHasAlpha(true);
    mBitmap.compress(Bitmap.CompressFormat.PNG, 80, out);
    out.flush();
    out.close();
    

    【讨论】:

    • 是的,我的问题是保存为 JPEG 而不是 PNG。谢谢!
    • @Grux 太好了,我的回答可以帮助你
    • 谢谢你,你拯救了我的一天..这个答案真的很有帮助..
    • @KalpeshKundanani 我的荣幸 :))
    【解决方案3】:

    对于 Kotlin,您可以使用此扩展功能

    /**
     * Returns a new Bitmap with provided background color and recycles the current one.
     */
    fun Bitmap.changeBackgroundColor(color: Int): Bitmap {
        val newBitmap = Bitmap.createBitmap(width, height, config)
        val canvas = Canvas(newBitmap)
        canvas.drawColor(color)
        canvas.drawBitmap(this, 0F, 0F, null)
        recycle()
        return newBitmap
    }
    

    【讨论】:

      猜你喜欢
      • 2017-06-06
      • 1970-01-01
      • 2012-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-07
      • 1970-01-01
      相关资源
      最近更新 更多