java swing图像放大、缩小、剪切
来源:互联网 发布:淘宝外贸原单鞋店推荐 编辑:程序博客网 时间:2024/05/22 02:28
先在D:盘准备好两张图片a.jpg 和 b.jpg
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class ImageCut {
/**
* 缩放图像
*
* @param srcImageFile
* 源图像文件地址
* @param result
* 缩放后的图像地址
* @param scale
* 缩放比例
* @param flag
* 缩放选择:true 放大; false 缩小;
*/
public static void scale(String srcImageFile, String result, int scale,
boolean flag) {
try {
BufferedImage src = ImageIO.read(new File(srcImageFile)); // 读入文件
int width = src.getWidth(); // 得到源图宽
int height = src.getHeight(); // 得到源图长
if (flag) { // 放大
width = width * scale;
height = height * scale;
} else { // 缩小
width = width / scale;
height = height / scale;
}
Image image = src.getScaledInstance(width, height,
Image.SCALE_DEFAULT); // 返回图像的缩放版本。默认的图像缩放算法
BufferedImage tag = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB); // 预定义一个图像
Graphics g = tag.getGraphics(); // 返回Graphics,可用于绘制预定义的图像。
g.drawImage(image, 0, 0, null); // 用图像的缩放版本去绘制缩放后的图
g.dispose(); // 释放此图形的上下文以及它使用的所有系统资源。调用 dispose 之后,就不能再使用 Graphics
// 对象
ImageIO.write(tag, "JPEG", new File(result)); // 输出到文件流
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
ImageCut.scale("D://a.jpg", "D://b.jpg", 4, false);
}
}
图形裁剪方法说明:
CropImageFilter 用于裁剪图像的 ImageFilter 类。此类扩展了基本 ImageFilter 类,可提取现有 Image 中的给定矩形区域,为包含刚提取区域的新图像提供源。也就是它要与 FilteredImageSource 对象结合使用,以生成现有图像的裁剪版本。
CropImageFilter cropFilter = new CropImageFilter(int x,int y ,int w,int h );//按指定 x、y、w 和 h 参数从源 Image 提取绝对矩形区域
Image image = Toolkit.getDefaultToolkit().createImage( new FilteredImageSource(image.getSource(), cropFilter));
- java swing图像放大、缩小、剪切
- java 图像的放大与缩小
- java swing 显示pdf,带放大缩小及打印功能
- java swing 显示pdf,带放大缩小及打印功能
- java 图片放大缩小
- java 图片放大缩小
- java 放大缩小图片
- 利用图像内插法放大缩小图像 Matlab
- JAVA图片处理放大缩小
- java文件比例缩小放大
- 【转】java 图片放大缩小
- drawdib对图像进行放大缩小不成功
- 图像拉伸,放大缩小算法函数
- 一个实用的图像放大缩小程序
- 双线性插值图像放大/缩小算法
- c# 图像放大或缩小定位问题
- 双线性插值图像放大/缩小算法
- 数字图像处理:5.放大、缩小图像
- STL学习笔记
- CodeDom使用笔记(三)
- ubuntu sudo权限错误的解决方法
- thinkphp多图片上传(插入数据库,并且不出现覆盖现象)
- html5游戏开发-愤怒的小鸟-开源讲座(二)-跟随小鸟的镜头
- java swing图像放大、缩小、剪切
- 经典SQL语句大全之(数据开发,管理常识)
- 这些年,我收集的JavaScript代码(一)
- linux下查看进程内存使用情况
- QAction使用
- Activity的四种launchMode
- 内部类的总结
- msvc 编译 VLC
- S-优势分析(原创Xu,Xianghu)