我正在学习Java图像处理。这是我的代码:
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
public class LoadImage {
public static void main(String[] args) {
int width = 1280;
int height = 720;
BufferedImage image = null;
// READ IMAGE
try {
File input_image = new File("E:\\SELF-TAUGHT LEARNING\\39. Image Processing with Java\\test-image.jpg");
image = new BufferedImage (width,height,BufferedImage.TYPE_INT_ARGB);
image = ImageIO.read(input_image);
System.out.println("Read successfully");
}
catch (IOException e) {
System.out.println("Error: " + e);
}
// WRITE IMAGE
try {
File output_image = new File("E:\\SELF-TAUGHT LEARNING\\39. Image Processing with Java\\test-image-output.jpg");
ImageIO.write(image, "jpg", output_image);
System.out.println("Writing successfully");
}
catch (IOException e) {
System.out.println("Error: "+ e);
}
}
}
因此,输入图像约为300kb。但是输出图像仅为48kb。为什么?谢谢
答案 0 :(得分:0)
如果在保存新版本后图像具有相同的分辨率和质量,则可能只是元数据和格式有所不同。但是,您也可能会得到质量较低的图像-如果原始图像的质量设置足够高,则Java将其保存为较低质量时可能不会引起注意。
一些要检查的东西:
我对Java不太了解,对它们的图像处理也不了解,但是我可以想象有设置图像大小,分辨率和质量的方法。但是,我确实需要处理很多图像,并且我知道可以进行很多优化(尤其是在JPEG图像中)以减少文件大小而又不会明显影响视觉质量。