Java BufferedImage 填充
有没有比以更大的 BufferedImage 为中心绘制像素更快的方法来实现 BufferedImage 的像素填充?
Is there any faster way to achieve padding of pixels to a BufferedImage than drawing it centered on larger BufferedImage?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
BufferedImage 有一个构造函数,您可以在其中指定 WriteableRaster。
选择默认缓冲图像,将每个像素存储在 int 中,它使用 IntegerInterleavedRaster。
您可以使用 ColorModel.getRGBDefault() 的 ColorModel。
请注意 SinglePixelPackedSampleModel 中的 scanlineStride(倒数第二个参数)。
另一种更简单的方法是使用 BufferedImage 的 getSubimage 方法。
BufferedImage has a constructor where you get to specify a WriteableRaster.
Picking at the a default buffered image, storing each pixel in an int, it uses an IntegerInterleavedRaster.
The ColorModel you can use ColorModel.getRGBDefault().
Notice the scanlineStride in SinglePixelPackedSampleModel (second last parameter).
Another much simpler approach is to use BufferedImage's getSubimage method.
使用 BufferedImage 创建 ImageIcon 并将该图标添加到 JLabel。然后,您只需向标签添加边框即可获得所需的填充。
Create an ImageIcon using the BufferedImage and add the Icon to a JLabel. Then you can just add a Border to the label to get your desired padding.
为了推迟居中直到渲染,我喜欢这种方法,因为finnw,其中
this
是合适的组件:To defer centering until rendering, I like this approach due to finnw, where
this
is a suitable component: