2016-12-21 7 views
0

Я пытаюсь повернуть изображения, используя библиотеку Thumbnailator. Код, который я использую, показан ниже. Он поворачивает изображение или сбрасывает изображение успешно, но качество цвета полностью портит. Также отображаются входные и выходные изображения.Thumbnailator Image Rotation messes the image

package com.abk; 

import java.awt.image.BufferedImage; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.IOException; 
import java.io.InputStream; 
import java.util.Iterator; 

import javax.imageio.ImageIO; 
import javax.imageio.ImageReader; 
import javax.imageio.stream.ImageInputStream; 

import net.coobird.thumbnailator.Thumbnails; 
import net.coobird.thumbnailator.filters.Flip; 
import net.coobird.thumbnailator.filters.Rotation; 
import net.coobird.thumbnailator.util.exif.ExifUtils; 
import net.coobird.thumbnailator.util.exif.Orientation; 

public class ImageAutoRotate { 
    public static void main(String[] args) { 
     try { 
      BufferedImage img = ImageIO.read(new File("314.jpg")); 
      BufferedImage newImg = Rotation.RIGHT_90_DEGREES.apply(img); 
      BufferedImage flipImg = Flip.HORIZONTAL.apply(img); 

      File outputfile = new File("314_2.jpg"); 
      ImageIO.write(newImg, "jpg", outputfile); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 
} 

входного изображения enter image description here Выход Изображение Output Image

+0

Результат выглядит YCbCr неправильно истолковано как RGB. – haraldK

+0

Изображение само RGB ... Есть ли способ заставить его интерпретировать изображение как RGB –

+0

Оригинал хранится как YCbCr (большинство JPEG-файлов), но декодеры преобразуют его в RGB. Вывод, вероятно, RGBA (4 канала) перед его записью, но поскольку JPEG содержит маркер Adobe с «неизвестным» преобразованием, изображение интерпретируется как CMYK (!) ... Quickfix: используйте PNG для вывода или измените изображение на 'TYPE_3BYTE_BGR' или' TYPE_INT_RGB'. – haraldK

ответ

1

Решена проблема при сохранении изображения в качестве PNG изображения. Этот вопрос был на самом деле вызвано тем, что профиль изображение рассматривается как CMYK при сохранении

Окончательный код для решения этой проблемы показан на этом link