Как я могу создать изображение с Java? - PullRequest
2 голосов
/ 26 апреля 2010

Я хотел бы создать изображение GIF из закрашенного красного круга на зеленом фоне. Какой самый простой способ сделать это на Java?

Ответы [ 3 ]

1 голос
/ 26 апреля 2010

Если у вас уже есть файл изображения или URL-адрес изображения, вы можете использовать Toolkit , чтобы получить Изображение :

<a href="http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Image.html" rel="nofollow noreferrer">Image</a> img = <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Toolkit.html" rel="nofollow noreferrer">Toolkit</a>.<a href="http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Toolkit.html#getDefaultToolkit%28%29" rel="nofollow noreferrer">getDefaultToolkit()</a>.<a href="http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Toolkit.html#createImage%28java.lang.String%29" rel="nofollow noreferrer">createImage</a>(filename);

Если вам нужно создать новый растр изображения и нарисовать его, тогда вы можете использовать BufferedImage . Вы можете рисовать на BufferedImage, вызывая его createGraphics и рисуя на графическом объекте. Чтобы сохранить BufferedImage в GIF, вы можете использовать класс ImageIO для записи изображения.

1 голос
/ 26 апреля 2010

Лучший способ - сгенерировать BufferedImage:

BufferedImage img = new BufferedImage(int width, int height, int imageType) 
// you can find the Types variables in the api

Затем, сгенерировав Graphics2D этого изображения, этот объект позволяет установить фон и нарисовать фигуры:

Graphics2D g = img.createGraphics();
g.setBackground(Color color) ; //Find how to built this object look at the java api
g.draw(Shape s);
g.dispose(); //don't forget it!!!

Для построения изображения:

File file = new File(dir, name);
try{
  ImageIO.write(img, "gif", file);
}catch(IOException e){
  e.printStackTrace();
}
1 голос
/ 26 апреля 2010

Создайте BufferedImage, а затем запишите его в файл с <a href="http://java.sun.com/j2se/1.4.2/docs/api/javax/imageio/ImageIO.html#write(java.awt.image.RenderedImage,%20java.lang.String,%20java.io.File)" rel="nofollow noreferrer">ImageIO.write</a>(image, "gif", fileName).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...