有沒有更快的方法來實現像素填充到BufferedImage,而不是以更大的BufferedImage爲中心進行繪製?Java BufferedImage padding
3
A
回答
2
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);
1
要推遲到定心渲染,我喜歡這個approach由於finnw,其中this
是合適的組件:
private BufferedImage image;
....
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.translate(this.getWidth()/2, this.getHeight()/2);
g2d.translate(-image.getWidth()/2, -image.getHeight()/2);
g2d.drawImage(image, 0, 0, null);
}
2
創建一個使用BufferedImage的一個ImageIcon和圖標添加到JLabel。然後你可以在標籤上添加一個邊框來獲得你想要的填充。
相關問題
- 1. BufferedImage字節Java
- 2. Java中的BufferedImage&ColorModel
- 3. 用Java打印BufferedImage
- 4. Java BufferedImage分辨率
- 5. Java BufferedImage的替代
- 6. Java BufferedImage序列化
- 7. BufferedImage到Java的BMP
- 8. Android Padding Color
- 9. Java BufferedImage setRGB,getRGB錯誤
- 10. 的Java BufferedImage的旋轉
- 11. Java BufferedImage灰度退化
- 12. 的Java的BufferedImage不行
- 13. Java - 更改BufferedImage文件
- 14. Java BufferedImage = Robot.createScreenCapture()not enough enought
- 15. Java Graphics2D繪製到BufferedImage中
- 16. Java在JFrame上移動BufferedImage
- 17. Java BufferedImage剪貼板給IIOException
- 18. UITabBar padding
- 19. Responsive Padding Trouble
- 20. XHTML Column Padding Bug
- 21. IE Ul LI Padding?
- 22. Html padding-top
- 23. XSL Strip Padding
- 24. jquery add width + padding;
- 25. Typo3:unset padding
- 26. BufferedImage class
- 27. IKVM中的BufferedImage
- 28. 與BufferedImage的
- 29. Java在BufferedImage上查找網格和FloodFill
- 30. 在java中更改bufferedImage像素
是僅用於顯示目的的填充,還是您需要創建一個新的填充圖像? – objects 2010-07-20 03:02:05
這主要是爲了生成一個新的填充圖像,而不僅僅是渲染它。 – m0s 2010-07-20 06:43:21