Java如何调整图片的大小?
2017-08-21 11:32
351 查看
1.Graphics2D 提供了图片调整功能
2.如果想调整图片的大小可以使用以下方法
3.代码演示
BufferedImage resizedImage = new BufferedImage(IMG_WIDTH, IMG_HEIGHT, type); Graphics2D g = resizedImage.createGraphics(); g.drawImage(originalImage, 0, 0, IMG_WIDTH, IMG_HEIGHT, null); g.dispose();
2.如果想调整图片的大小可以使用以下方法
BufferedImage resizedImage = new BufferedImage(IMG_WIDTH, IMG_HEIGHT, type); Graphics2D g = resizedImage.createGraphics(); g.drawImage(originalImage, 0, 0, IMG_WIDTH, IMG_HEIGHT, null); g.dispose();
g.setComposite(AlphaComposite.Src);
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g.setRenderingHint(RenderingHints.KEY_RENDERING,RenderingHints.VALUE_RENDER_QUALITY);
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
3.代码演示
package ImageIO;
import java.awt.AlphaComposite;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class ImageTest {
private static final int IMG_WIDTH = 100;
private static final int IMG_HEIGHT = 100;
public static void main(String [] args){
try{
BufferedImage originalImage = ImageIO.read(new File("D:\\1.png"));
int type = originalImage.getType() == 0? BufferedImage.TYPE_INT_ARGB : originalImage.getType();
BufferedImage resizeImageJpg = resizeImage(originalImage, type);
ImageIO.write(resizeImageJpg, "jpg", new File("E:\\ target.jpg"));
BufferedImage resizeImagePng = resizeImage(originalImage, type);
ImageIO.write(resizeImagePng, "png", new File("E:\\target.jpg"));
BufferedImage resizeImageHintJpg = resizeImageWithHint(originalImage, type);
ImageIO.write(resizeImageHintJpg, "jpg", new File("E:\\target.jpg"));
BufferedImage resizeImageHintPng = resizeImageWithHint(originalImage, type);
ImageIO.write(resizeImageHintPng, "png", new File("E:\\target.jpg"));
}catch(IOException e){
System.out.println(e.getMessage());
}
}
private static BufferedImage resizeImage(BufferedImage originalImage, int type){
BufferedImage resizedImage = new BufferedImage(IMG_WIDTH, IMG_HEIGHT, type);
Graphics2D g = resizedImage.createGraphics();
g.drawImage(originalImage, 0, <
b964
span class="hljs-number">0, IMG_WIDTH, IMG_HEIGHT, null);
g.dispose();
return resizedImage;
}
private static BufferedImage resizeImageWithHint(BufferedImage originalImage, int type){
BufferedImage resizedImage = new BufferedImage(IMG_WIDTH, IMG_HEIGHT, type); Graphics2D g = resizedImage.createGraphics(); g.drawImage(originalImage, 0, 0, IMG_WIDTH, IMG_HEIGHT, null); g.dispose();
g.setComposite(AlphaComposite.Src);
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g.setRenderingHint(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
return resizedImage;
}
}
这样我们可以使用调整后的图片,把它添加到Jlabel中。
相关文章推荐
- 转载 Java中如何设置按钮背景图片大小
- pandas画图时如何调整保存图片的大小
- java按比例压缩图片的源代码,用java如何把图片处理到指定大小
- Linux中如何使用gThumb批量调整图片大小
- JAVA打开图片(面板自动随图片大小调整)
- Eclipse 如何调整java和xml文件字体大小
- java 添加背景图片(可根据窗口大小自动调整显示图片)
- 使用java.awt包 对图片进行大小调整
- 如何使用java判断图片base64流字节大小
- java按比例压缩图片的源代码,用java如何把图片处理到指定大小
- 【转】如何在VC++下动态调整水晶报表图片的大小
- SVG图片如何调整大小和颜色
- JAVA中如何设置图片(图标)自适应Jlable等组件的大小
- 如何在VC++下动态调整水晶报表图片的大小
- Linux中如何使用gThumb批量调整图片大小
- Java中如何设置按钮背景图片大小
- JAVA中如何设置图片(图标)自适应Jlable等组件的大小
- 如何在服务器端调整图片大小
- Linux 中如何使用 gThumb 批量调整图片大小
- Java调整图片大小合并PNG图片生成ICON(保持背景透明)