相关疑难解决方法(0)

Java - 调整图像大小而不会降低质量

我有10,000张照片需要调整大小,所以我有一个Java程序来做.不幸的是,图像的质量很差,我无法访问未压缩的图像.

import java.awt.Graphics;
import java.awt.AlphaComposite;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;


import javax.imageio.ImageIO;
/**
 * This class will resize all the images in a given folder
 * @author 
 *
 */
public class JavaImageResizer {

    public static void main(String[] args) throws IOException {

        File folder = new File("/Users/me/Desktop/images/");
        File[] listOfFiles = folder.listFiles();
        System.out.println("Total No of Files:"+listOfFiles.length);
        BufferedImage img = null;
        BufferedImage tempPNG = null;
        BufferedImage tempJPG = null;
        File newFilePNG = null;
        File newFileJPG = …
Run Code Online (Sandbox Code Playgroud)

java bufferedimage image image-processing

56
推荐指数
6
解决办法
7万
查看次数

如何获得高质量的缩略图

我正在尝试使用Java和Scalr 3.2创建此图像的高质量缩略图

全尺寸图像

这是相关的源代码,其中THUMB_WIDTH = 77THUMB_HEIGHT = 57

BufferedImage srcImg = ImageIO.read(new File(sourceFile)); 
BufferedImage dstImg = Scalr.resize(srcImg, Scalr.Method.QUALITY, 
    THUMB_WIDTH, THUMB_HEIGHT); 
ImageIO.write(dstImg, format, new File(destFile));
Run Code Online (Sandbox Code Playgroud)

如果我使用format = "png",结果如下:

png缩略图

如果我使用format = "jpg",结果如下:

jpg缩略图

通过imagemagick识别,我发现JPEG的质量保存为75,完全不足以创建美观的缩略图.PNG对我来说也不好看.

以下是原始文件的标识输出和两个缩略图:

$ identify 42486_1.jpg 42486_s1.jpg 42486_s1.png 
42486_1.jpg JPEG 580x435 580x435+0+0 8-bit DirectClass 50.6KB 0.000u 0:00.000
42486_s1.jpg[1] JPEG 77x58 77x58+0+0 8-bit DirectClass 2.22KB 0.000u 0:00.000
42486_s1.png[2] PNG 77x58 77x58+0+0 8-bit DirectClass 12.2KB 0.000u 0:00.000
Run Code Online (Sandbox Code Playgroud)

问题

  • 如何提高生成的缩略图的质量?
  • 如何保存质量更高的JPEG?我想尝试更高的质量并比较结果.我在JavaDoc for ImageIO.write中找不到任何东西. …

java java-2d image-resizing scalr

19
推荐指数
1
解决办法
1万
查看次数

是否有更好的方法来调整缓冲图像的大小而不会损失质量?

要调整缓冲图像的大小,我有以下方法:

    BufferedImage resizeImage(BufferedImage img, int newW, int newH) {
    Image tmp = img.getScaledInstance(newW, newH, Image.SCALE_SMOOTH);
    BufferedImage dimg = new BufferedImage(newW, newH, BufferedImage.TRANSLUCENT);
    Graphics2D g2d = dimg.createGraphics();
    g2d.drawImage(tmp, 0, 0, null);
    g2d.dispose();

    return dimg;
}
Run Code Online (Sandbox Code Playgroud)

是否有更好的方法来调整图像大小而不会降低质量?

java bufferedimage image-resizing

5
推荐指数
0
解决办法
51
查看次数

如何更改JFrame图标的大小

如何更改JFrame图标的大小?

JFrame f = new JFrame("Test");
Image icon = Toolkit.getDefaultToolkit().getImage("icons/logo.png");
// icon.setPreferredWidth()...
f.setIconImage(icon);
Run Code Online (Sandbox Code Playgroud)

java size icons swing resize

2
推荐指数
1
解决办法
3974
查看次数