gpt4 book ai didi

Java BufferedImage 填充

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:58:07 25 4
gpt4 key购买 nike

有没有比以更大的 BufferedImage 为中心绘制像素更快的方法来实现 BufferedImage 的像素填充?

最佳答案

BufferedImage 有一个构造函数,您可以在其中指定 WriteableRaster。

选取默认缓冲图像,将每个像素存储在一个 int 中,它使用 IntegerInterleavedRaster。

您可以使用 ColorModel.getRGBDefault() 的 ColorModel。

int imageWidth = 638, imageHeight = 480;
int dataImageWidth = 640;

SampleModel sm = new SinglePixelPackedSampleModel(TYPE_INT, imageWidth, imageHeight, dataImageWidth, new int[] { 0xff0000, 0xff00, 0xff });
DataBuffer db = new DataBufferInt(dataImageWidth * imageHeight);
WritableRaster r = Raster.createWritableRaster(sm, db, new Point());
BufferedImage image = new BufferedImage(ColorModel.getRGBDefault(), r, false, null);

注意 SinglePixelPackedSampleModel 中的 scanlineStride(倒数第二个参数)。

另一种更简单的方法是使用 BufferedImage 的 getSubimage 方法。

BufferedImage fullImage = new BufferedImage(dataImageWidth, imageHeight);
BufferedImage subImage = fullImage.getSubimage(0, 0, imageWidth, imageHeight);

关于Java BufferedImage 填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3285728/

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