gpt4 book ai didi

Java ImageJ - 如何使图像透明?

转载 作者:行者123 更新时间:2023-12-02 06:28:16 55 4
gpt4 key购买 nike

请问,怎样才能使图像透明?

实际上,我尝试从 IndexColorModel 读取 RGB 值

ImageProcessor ip1 = img1.getProcessor();
IndexColorModel indexColor = (IndexColorModel)ip1.getColorModel();

然后读取我需要创建新的 IndexColorModel 的参数

int pixelBits = indexColor .getPixelSize();

int mapSize = cm.getMapSize();
byte[] reds = new byte[mapSize];
cm.getReds(reds);

byte[] greens = new byte[mapSize];
cm.getGreens(greens);

byte[] blues = new byte[mapSize];
cm.getBlues(blues);

并创建新的 IndexColorModel 并将其设置为另一个具有不同透明索引的 ImagePlus

indexColor = new IndexColorModel(pixelBits, MapSize, reds, greens, blues, transparentIndex );
ImageProcessor ip3;
ip3.setColorModel(indexColor);

但这是错误的想法......

我应该将 IndexColorModel 与 cmap 和 hasAlpha 参数一起使用吗?我怎样才能做到这一点?

提前感谢您的帮助!

最佳答案

I'd ask, how can I make an image transparent?

要使图像透明需要太多工作。对于输入 image类型 BufferedImage我会这样做:

  1. 创建一个新的临时 BufferedImage tmpImage大小与 image 相同并输入:BufferedImage.TYPE_INT_ARGB
  2. 获取 tmpImage 的图形并将其转换为Graphics2D通过向上转换。
  3. 将 alpha 复合设置为具有我需要的透明度级别的 Graphics2D 实例
  4. 绘制图像并完成。

例如:

   BufferedImage tmpImg = new BufferedImage(image.getWidth(), image.getHeight(), 
BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = (Graphics2D) tmpImg.getGraphics();
g2d.setComposite(AlphaComposite.SrcOver.derive(0.5f));
// set the transparency level in range 0.0f - 1.0f
g2d.drawImage(image, 0, 0, null);
image = tmpImg;

关于Java ImageJ - 如何使图像透明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20311750/

55 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com