如何将带有Alpha的Type_Byte_Binary BufferedImage转换为TYPE_4BYTE_ABGR

梅尔

我正在使用代码

BufferedImage imgIn = ImageIO.read(is);

    BufferedImage image;
    if (imgIn.getType() != BufferedImage.TYPE_BYTE_INDEXED) {
        image = new BufferedImage(imgIn.getWidth(), imgIn.getHeight(), BufferedImage.TYPE_4BYTE_ABGR);
        ColorConvertOp cco = new ColorConvertOp(imgIn.getColorModel()
                .getColorSpace(), image.getColorModel().getColorSpace(), null);
        cco.filter(imgIn, image);
    } else {
        image = imgIn;
    }

当我拉入一个位深度为4的图像时,它使imgIn成为Type_Byte_Binary。当它转换为Type_4Byte_ABGR时,任何具有部分透明性的东西都会更改颜色并丢失所有alpha。完全透明像素和完全不透明像素保持不变。

我能做些什么来保持部分透明像素不变?

谢谢。

哈拉尔德·K

这很可能ColorConvertOp不是您想要的,因为图像全部位于RGB(sRGB)色彩空间中(IndexColorModel不支持其他色彩空间)。

取而代之的是,只需图像绘画TYPE_BYTE_INDEXEDTYPE_BYTE_BINARYTYPE_4BYTE_ABGR图像绘画,任何透明度都应保留。

BufferedImage image = new BufferedImage(imgIn.getWidth(), imgIn.getHeight(), BufferedImage.TYPE_4BYTE_ABGR);

Grphics2D g = image.createGraphics();

try {
    g.drawImage(imgIn, 0, 0, null);
}
finally {
    g.dispose();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将数据类型TYPE_4BYTE_ABGR的字节数组转换为BufferedImage

来自分类Dev

BufferedImage TYPE_BYTE_BINARY更改像素的颜色

来自分类Dev

BufferedImage TYPE_BYTE_BINARY更改像素的颜色

来自分类Dev

将Type Int转换为Type Byte

来自分类Dev

将带有alpha beta修剪的minimax转换为negamax

来自分类Dev

将带有二进制数据的byte []转换为String

来自分类Dev

如何将CString转换为BYTE?

来自分类Dev

如何将带有分支的Git存储库转换为可用的Mercurial存储库?

来自分类Dev

如何将带有Devise的Rails应用程序转换为OAuth提供程序?

来自分类Dev

如何将带有几行代码的字符数组转换为data.frame?

来自分类Dev

如何将带有样式的HTML标签转换为打ic?解决问题

来自分类Dev

如何将带有optgroup的html select转换为HTML表

来自分类Dev

如何将带有插槽的python类转换为字典?

来自分类Dev

RedShift:如何将带有年份的整数转换为日期?

来自分类Dev

如何将带有“ \ r \ n”的字符串转换为列表?

来自分类Dev

Java:如何将带有月份名称的字符串转换为DateTime?

来自分类Dev

如何将带有textEncoding utf-8的NSData转换为NSURL

来自分类Dev

bash脚本如何将带有密钥的日志转换为csv

来自分类Dev

如何将带有参数的url转换为直接链接?

来自分类Dev

如何将带有Unicode字符的字符串转换为普通字符串?

来自分类Dev

如何将带有值的区间转换为R中的单个位置级别

来自分类Dev

如何将带有ffmpeg的视频转换为DNxHD / DNxHR格式?

来自分类Dev

如何将带有附加道具的PSCustomObject转换为自定义类

来自分类Dev

如何将带有meshgrid和数组的Matlab代码转换为Python代码?

来自分类Dev

如何将带有后缀的数字转换为javascript中的数字

来自分类Dev

如何将带有数据的数组转换为小部件

来自分类Dev

如何将带有谓词接口的泛型列表转换为Lambda表达式?

来自分类Dev

如何将带有时区的时间转换为时间戳?

来自分类Dev

如何将带有grad的Torch张量列表转换为张量

Related 相关文章

  1. 1

    将数据类型TYPE_4BYTE_ABGR的字节数组转换为BufferedImage

  2. 2

    BufferedImage TYPE_BYTE_BINARY更改像素的颜色

  3. 3

    BufferedImage TYPE_BYTE_BINARY更改像素的颜色

  4. 4

    将Type Int转换为Type Byte

  5. 5

    将带有alpha beta修剪的minimax转换为negamax

  6. 6

    将带有二进制数据的byte []转换为String

  7. 7

    如何将CString转换为BYTE?

  8. 8

    如何将带有分支的Git存储库转换为可用的Mercurial存储库?

  9. 9

    如何将带有Devise的Rails应用程序转换为OAuth提供程序?

  10. 10

    如何将带有几行代码的字符数组转换为data.frame?

  11. 11

    如何将带有样式的HTML标签转换为打ic?解决问题

  12. 12

    如何将带有optgroup的html select转换为HTML表

  13. 13

    如何将带有插槽的python类转换为字典?

  14. 14

    RedShift:如何将带有年份的整数转换为日期?

  15. 15

    如何将带有“ \ r \ n”的字符串转换为列表?

  16. 16

    Java:如何将带有月份名称的字符串转换为DateTime?

  17. 17

    如何将带有textEncoding utf-8的NSData转换为NSURL

  18. 18

    bash脚本如何将带有密钥的日志转换为csv

  19. 19

    如何将带有参数的url转换为直接链接?

  20. 20

    如何将带有Unicode字符的字符串转换为普通字符串?

  21. 21

    如何将带有值的区间转换为R中的单个位置级别

  22. 22

    如何将带有ffmpeg的视频转换为DNxHD / DNxHR格式?

  23. 23

    如何将带有附加道具的PSCustomObject转换为自定义类

  24. 24

    如何将带有meshgrid和数组的Matlab代码转换为Python代码?

  25. 25

    如何将带有后缀的数字转换为javascript中的数字

  26. 26

    如何将带有数据的数组转换为小部件

  27. 27

    如何将带有谓词接口的泛型列表转换为Lambda表达式?

  28. 28

    如何将带有时区的时间转换为时间戳?

  29. 29

    如何将带有grad的Torch张量列表转换为张量

热门标签

归档