java 裁剪图片 参数 宽 高 自动按照比例来剪切
来源:互联网 发布:政治家族 知乎 编辑:程序博客网 时间:2024/05/20 22:26
package com.dakele.activity.common.utils;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.UUID;
import javax.imageio.ImageIO;
public class ImageUtil1 {
public String cutImage(String srcPath, int width, int height)
throws IOException {
File srcFile = new File(srcPath);
BufferedImage image = ImageIO.read(srcFile);
int srcWidth = image.getWidth(null);
int srcHeight = image.getHeight(null);
int newWidth = 0, newHeight = 0;
int x = 0, y = 0;
double scale_w = (double) width / srcWidth;
double scale_h = (double) height / srcHeight;
System.out.println("scale_w=" + scale_w + ",scale_h=" + scale_h);
// 按原比例缩放图片
if (scale_w < scale_h) {
newHeight = height;
newWidth = (int) (srcWidth * scale_h);
x = (newWidth - width) / 2;
} else {
newHeight = (int) (srcHeight * scale_w);
newWidth = width;
y = (newHeight - height) / 2;
}
BufferedImage newImage = new BufferedImage(newWidth, newHeight,
BufferedImage.TYPE_INT_RGB);
newImage.getGraphics()
.drawImage(
image.getScaledInstance(newWidth, newHeight,
Image.SCALE_SMOOTH), 0, 0, null);
// 保存缩放后的图片
String fileSufix = srcFile.getName().substring(
srcFile.getName().lastIndexOf(".") + 1);
String string = UUID.randomUUID().toString();
File destFile = new File(srcFile.getParent(), string + "." + fileSufix);
System.out.println(fileSufix);
System.out.println(destFile);
// 保存裁剪后的图片
ImageIO.write(newImage.getSubimage(x, y, width, height), fileSufix,
destFile);
return "/files" + "/" + string + "." + fileSufix;
}
public static void main(String[] args) throws Exception {
// String name =
// "D:/work/workspace/dev-1.2/target/dakele_act/files/435263,100.jpg";
// ImageUtil1 i = new ImageUtil1();
// String cutImage = i.cutImage(name, 340, 240);
// System.out.println(cutImage);
}
}
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.UUID;
import javax.imageio.ImageIO;
public class ImageUtil1 {
public String cutImage(String srcPath, int width, int height)
throws IOException {
File srcFile = new File(srcPath);
BufferedImage image = ImageIO.read(srcFile);
int srcWidth = image.getWidth(null);
int srcHeight = image.getHeight(null);
int newWidth = 0, newHeight = 0;
int x = 0, y = 0;
double scale_w = (double) width / srcWidth;
double scale_h = (double) height / srcHeight;
System.out.println("scale_w=" + scale_w + ",scale_h=" + scale_h);
// 按原比例缩放图片
if (scale_w < scale_h) {
newHeight = height;
newWidth = (int) (srcWidth * scale_h);
x = (newWidth - width) / 2;
} else {
newHeight = (int) (srcHeight * scale_w);
newWidth = width;
y = (newHeight - height) / 2;
}
BufferedImage newImage = new BufferedImage(newWidth, newHeight,
BufferedImage.TYPE_INT_RGB);
newImage.getGraphics()
.drawImage(
image.getScaledInstance(newWidth, newHeight,
Image.SCALE_SMOOTH), 0, 0, null);
// 保存缩放后的图片
String fileSufix = srcFile.getName().substring(
srcFile.getName().lastIndexOf(".") + 1);
String string = UUID.randomUUID().toString();
File destFile = new File(srcFile.getParent(), string + "." + fileSufix);
System.out.println(fileSufix);
System.out.println(destFile);
// 保存裁剪后的图片
ImageIO.write(newImage.getSubimage(x, y, width, height), fileSufix,
destFile);
return "/files" + "/" + string + "." + fileSufix;
}
public static void main(String[] args) throws Exception {
// String name =
// "D:/work/workspace/dev-1.2/target/dakele_act/files/435263,100.jpg";
// ImageUtil1 i = new ImageUtil1();
// String cutImage = i.cutImage(name, 340, 240);
// System.out.println(cutImage);
}
}
0 0
- java 裁剪图片 参数 宽 高 自动按照比例来剪切
- java 裁剪图片 参数 宽 高 自动按照比例来剪切
- 自定义按照图片宽高比例缩放的RadioLayout
- 自定义控件【按照宽高比例显示】
- 按照指定的宽高(或指定比例)来重新设置bitmap
- Android布局的高按照比例来分布
- java裁剪图片--- 坐标+高+宽
- Java 操作按照尺寸裁剪图片
- listview的条目上的图片按照宽高比例进行缩放设置
- Picasso处理图片,按照设置的宽度比例来缩放
- 实现图片按照比例显示(java代码)
- java图片处理,裁剪,合图,等比例缩放
- java图片处理,裁剪,合图,等比例缩放
- 控制图片比例、等比例控制图片最大宽高。
- 将图片按照比例显示
- 调用系统剪切方法,剪切任意比例图片
- cropper 图片裁剪,固定图片宽高
- .net中按照比例生成图片
- IAP-In App Purchase流程
- UITableView 基本使用方法总结
- C#PDA智能程序图片动态变化进度条设计及实现
- Ant简明笔记
- CSS如何排查错误
- java 裁剪图片 参数 宽 高 自动按照比例来剪切
- Nginx 进程间通信
- oracle字段中找出字段中含有非数字的方法
- 智能家居系统中的主被动红外入侵探测器介绍
- iOS常用控件尺寸大集合
- mysql 查看负载
- ORACLE常用数值函数、转换函数、字符串函数
- 如何快速汉化一个JAVA软件
- DAVINCI DM365-DM368开发攻略——linux-2.6.32的移植