有沒有更快的方法來實現像素填充到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 SWT Composite 1 px padding
- 3. 用Java打印BufferedImage
- 4. Java ImageWriter BufferedImage to GIF
- 5. BufferedImage到Java的BMP
- 6. Java BufferedImage的替代
- 7. Java BufferedImage序列化
- 8. Java中的BufferedImage&ColorModel
- 9. java bufferedImage int []問題
- 10. Java BufferedImage分辨率
- 11. Java BufferedImage/Android位圖
- 12. Android Padding Color
- 13. 的Java BufferedImage的旋轉
- 14. Java - 更改BufferedImage文件
- 15. Java Graphics2D繪製到BufferedImage中
- 16. 的Java的BufferedImage不行
- 17. 滾動的BufferedImage的Java
- 18. Java - 如何壓縮BufferedImage?
- 19. 在Java中使用BufferedImage
- 20. 的BufferedImage與柵格(JAVA)
- 21. Java BufferedImage setRGB,getRGB錯誤
- 22. Java BufferedImage灰度退化
- 23. Java - BufferedImage(ImageIO.Read)OutOfMemory堆空間
- 24. Java BufferedImage剪貼板給IIOException
- 25. Java在JFrame上移動BufferedImage
- 26. Java BufferedImage = Robot.createScreenCapture()not enough enought
- 27. UIButton Padding
- 28. UITabBar padding
- 29. Highcharts'marker'line padding
- 30. Trim Padding ByteArrayOutputStream
是僅用於顯示目的的填充,還是您需要創建一個新的填充圖像? – objects 2010-07-20 03:02:05
這主要是爲了生成一個新的填充圖像,而不僅僅是渲染它。 – m0s 2010-07-20 06:43:21