0
我想使用Thumbnailator庫旋轉圖像。我使用的代碼如下所示。它旋轉圖像或成功翻轉圖像,但顏色質量完全損壞。還顯示輸入和輸出圖像。Thumbnailator圖像旋轉混淆圖像
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();
}
}
}
結果顯示貌似正確的YCbCr解釋爲RGB。 – haraldK
圖像是RGB本身...有沒有辦法強制它將圖像解釋爲RGB –
原始圖像存儲爲YCbCr(大多數JPEG),但解碼器會將其轉換爲RGB。輸出可能是RGBA(4通道),然後再寫入,但由於JPEG包含帶有「未知」轉換的Adobe標記,圖像被解釋爲CMYK(!)... Quickfix:使用PNG輸出或更改圖像到'TYPE_3BYTE_BGR'或'TYPE_INT_RGB'。 – haraldK