25

BufferedImage背景色を指定して長方形を作成し、背景にパターンを描いてファイルに保存する必要があります。背景の作り方がわかりません。

ネストされたループを使用しています:

BufferedImage b_img = ...
for every row
for every column
setRGB(r,g,b);

ただし、画像が大きい場合は非常に遅くなります。

より効率的な方法で色を設定するにはどうすればよいですか?

4

5 に答える 5

61

画像のグラフィックスオブジェクトを取得し、現在のペイントを目的の色に設定してから、を呼び出しますfillRect(0,0,width,height)

BufferedImage b_img = ...
Graphics2D    graphics = b_img.createGraphics();

graphics.setPaint ( new Color ( r, g, b ) );
graphics.fillRect ( 0, 0, b_img.getWidth(), b_img.getHeight() );
于 2009-09-17T19:09:31.110 に答える
9

おそらく次のようなものです:

BufferedImage image = new BufferedImage(...);
Graphics2D g2d = image.createGraphics();
g2d.setColor(...);
g2d.fillRect(...);
于 2009-09-17T19:10:02.013 に答える
8

これを使って:

BufferedImage bi = new BufferedImage(width, height,
                BufferedImage.TYPE_INT_ARGB);
Graphics2D ig2 = bi.createGraphics();

ig2.setBackground(Color.WHITE);
ig2.clearRect(0, 0, width, height);
于 2015-03-24T10:25:22.047 に答える
3
BufferedImage image = new BufferedImage(width,height, BufferedImage.TYPE_INT_ARGB);
int[]data=((DataBufferInt) image.getRaster().getDataBuffer()).getData();
Arrays.fill(data,color.getRGB());
于 2016-04-28T23:55:19.187 に答える
3

作成した画像もファイルに保存したい場合は、以前の回答を使用してファイル保存部分を追加しました。

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.color.ColorSpace;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;

// Create the image
BufferedImage bi = new BufferedImage(80, 40, ColorSpace.TYPE_RGB);
Graphics2D graphics = bi.createGraphics();

// Fill the background with gray color
Color rgb = new Color(50, 50, 50);
graphics.setColor (rgb);
graphics.fillRect ( 0, 0, bi.getWidth(), bi.getHeight());

// Save the file in PNG format
File outFile = new File("output.png");
ImageIO.write(bi, "png", outFile);

また、bmp、jpgなどの他の形式で画像を保存することもできます...

于 2019-01-25T03:47:05.083 に答える