Как конвертировать PNG <-> JPEG <-> TIFF изображения - PullRequest
0 голосов
/ 02 июня 2018

Есть ли способ конвертировать изображения в формате PNG <-> JPEG <-> TIFF в Java?У меня есть параметр String i / p (PNG или JPEG, преобразованный в байт [], который преобразуется в строку) в метод ConvertImage (String xyz).

String ConvertImage (String xyz)

ИтакЯ ищу следующее преобразование из одного метода и возвращаю байтовый массив или строку, а затем, наконец, я хочу сохранить в БД.

1.Если i / p конвертируется в PNG, то o / p является JPEG

2.Если i / p - преобразованный JPEG, o / p - PNG

3.Если i / p - преобразованный PNG или JPEG, o / p - TIFF

Я сейчас использую JAI дляэто преобразование (в моем предыдущем посте я не упомянул все эти детали, извините за это), но не хочу сейчас использовать JAI.

Пожалуйста, дайте мне знать, если у вас есть какое-нибудь быстрое решение для всех этих 3 типов?

Большое спасибо заранее !!!

1 Ответ

0 голосов
/ 02 июня 2018

Большинство типов изображений могут быть считаны в память с помощью простого вызова ImageIO.read:

import javax.imageio.ImageIO;
import java.io.File;

public class ImageTest {
    public static void main(String[] args) {
        BufferedImage image = ImageIO.read(new File("image.png"));//Or image.jpg or image.tiff, etc.
    }
}

Запись изображений затем может быть выполнена путем передачи RenderedImage (что BufferedImage является реализацией) до ImageIO.write:

import javax.imageio.ImageIO;
import java.io.File;

public class ImageTest {
    public static void main(String[] args) {
        BufferedImage image = ImageIO.read(new File("image.png"));//Or image.jpg or image.tiff, etc.
        String[] formatNames = ImageIO.getWriterFormatNames();
        //A robust use would validate whatever format you're intending to use against 
        //the canonical list of format names retrieved by that call
        ImageIO.write(image, "tiff", new File("image.tiff"));
    }
}
...