Как я могу загрузить изображение и написать текст, используя Java? - PullRequest
2 голосов
/ 30 июня 2011

У меня есть изображение, расположенное по адресу images / image.png в моем проекте Java. Я хочу написать метод, его подпись выглядит следующим образом

byte[] mergeImageAndText(String imageFilePath, String text, Point textPosition);

Этот метод загрузит изображение, расположенное в imageFilePath и в положении textPosition изображения (слева вверху). Я хочу записать text, затем я хочу вернуть байт [], который представляет новое изображение. объединены с текстом.

Ответы [ 3 ]

6 голосов
/ 01 июля 2011

Попробуйте так:

import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;

public class ImagingTest {

    public static void main(String[] args) throws IOException {
        String url = "http://icomix.eu/gr/images/non-batman-t-shirt-gross.jpg";
        String text = "Hello Java Imaging!";
        byte[] b = mergeImageAndText(url, text, new Point(200, 200));
        FileOutputStream fos = new FileOutputStream("so2.png");
        fos.write(b);
        fos.close();
    }

    public static byte[] mergeImageAndText(String imageFilePath,
            String text, Point textPosition) throws IOException {
        BufferedImage im = ImageIO.read(new URL(imageFilePath));
        Graphics2D g2 = im.createGraphics();
        g2.drawString(text, textPosition.x, textPosition.y);
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        ImageIO.write(im, "png", baos);
        return baos.toByteArray();
    }
}
6 голосов
/ 01 июля 2011

Используйте ImageIO для считывания изображения в BufferedImage.

. Используйте getGraphics() метод BufferedImage для получения объекта Graphics.

Затем вы можете использоватьdrawString() метод объекта Graphics.

Вы можете использовать ImageIO для сохранения изображения.

2 голосов
/ 01 июля 2011

Я просто укажу вам общее направление работы с изображениями в Java.

Для загрузки изображений вы можете использовать ImageIO . Вы также можете использовать ImageIO для вывода изображений в различных форматах.

Самый простой способ создать изображение - использовать BufferedImage и затем рисовать на нем с помощью Graphics2D . Вы можете использовать Graphics2D, чтобы нарисовать загруженное изображение, а затем закрасить текст поверх него.

Когда вы закончите, вы используете ImageIO для вывода изображения в подходящем формате (PNG, JPG и т. Д.).

...