将图片压缩工具类-您好!请问用java怎么将截取png的图片中间一部分,以及如何压缩一个png图片?
有什么压缩图片的软件

压缩图片的软件有很多,想要压缩效果好又保持清晰度,那就给大家安利一款真正良心好用的压缩软件:嗨格式压缩大师。
这是一款集视频压缩、图片压缩、PDF压缩、PPT压缩以及Word文档压缩于一体的多功能压缩软件,软件无广告、无捆绑软件,占用内存小~
→
点击下载正版无损压缩软件
(请在电脑端下载软件)
推荐理由:
1、BMP、PNG、JPG等市面上主流的图片格式均支持,包括GIF动图也能够轻松压缩完成;
2、压缩质量与压缩比可根据个人需求自定义调节,均衡质量与大小,保证图片清晰度情况下压缩大小;
3、软件升级最新算法,搭建强劲内核,压缩效率更快速,即便是小白用户也不用担心有学习压力;
4、售前售后客服态度好,有任何问题都可以联系客服得到有效的帮助及解决;
具体操作步骤:
第一步:点击上方链接下载并安装嗨格式压缩大师,找到主界面中的「图片压缩」,点击「图片压缩」进入到操作页面;
第二步:进入图片压缩界面后,将需要压缩的图片拖拽进去就可以压缩了,如果是多个图片,可以直接一并添加(这款软件支持批量压缩哦~)
第三步:图片添加完成后,如果你对图片有不同压缩需求,可以在软件页面右侧进行图片压缩的各项参数设置;嗨格式压缩大师支持手动调节图片参数,包括按比特率、文件大小等设置,数值越小压缩后的文件就越小。
以上就是完整的操作步骤了,只需要三步就可以解决,即便是电脑小白也可以快速解决,只需要下载嗨格式压缩大师就可以了,如果遇到了什么问题也可以联系客服快速解决。
有什么软件可以压缩图片大小。

IPhone压缩图像大小可安装在以下软件中:
1、美图秀秀。
美图秀秀为手机拍照,具备照片特效、人像美等功能,可以为用户提供专业、智能的拍照、润饰服务。它的操作和程序相对于专业的图像处理软件来说比较简单,可以让用户在很短的时间内处理照片。
2、JPG图像压缩伪影
该图像压缩设备可以将JPG文件压缩数百次,并且仍然保持原来的清晰度。您可以自定义图像输出大小,只需一个键完成图像压缩,图像自定义大小输出。通过提供一个简单而有效的界面,每个人都能获得最好的结果。
3、快捷
快捷方式在右侧,点击运行快捷规则,将自动跳转相册,选择您想要压缩的照片;你也可以选择直接压缩或裁剪照片。选择压缩后的图像质量后,会自动保存到相册中。您可以保留原始图像,也可以删除它。它还可以减少相册所占用的内存,这对小容量手机来说是个福音。
4、专业图像压缩伪影
这是一款专业的图像压缩伪影,不需要安装程序,操作简单,直接使用,它能将图像压缩比,压缩大小可以随意设置,最高压缩几十倍。您可以调整大小,添加水印,添加特殊效果和压缩图片与一键。
5、tiny
批处理可支持20张小于5MB的图片压缩处理,并且压缩后的图片体积更小,质量不变。但缺点是压缩的效果是固定的,不可调。支持中文。但是,缺点是压缩有时不成功,刷新重试。
您好!请问用java怎么将截取png的图片中间一部分,以及如何压缩一个png图片?

getSubimage方法是进行图片裁剪。
举例:
public static void main(String[] args) {
try {
//从特定文件载入
BufferedImage bi = (new File("c:\\"));
(0, 0, 10, 10);//前两个值是坐标位置X、Y,后两个是长和宽
} catch (IOException e) {
e.printStackTrace();
}
}
以下是进行的图片压缩,涉及到多个工具类。
/**
* 图片工具类
* 压缩图片大小
* @author Cyw
* @version 1.0
*/
public class ZIPImage {
private File file = null;
private String outPutFilePath;
private String inPutFilePath;
private String inPutFileName;
private boolean autoBuildFileName;
private String outPutFileName;
private int outPutFileWidth = 100; // 默认输出图片宽
private int outPutFileHeight = 100; // 默认输出图片高
private static boolean isScaleZoom = true; // 是否按比例缩放
public ZIPImage() {
outPutFilePath = "";
inPutFilePath = "";
inPutFileName = "";
autoBuildFileName = true;
outPutFileName = "";
}
/**
*
* @param ipfp
* 源文件夹路径
* @param ipfn
* 源文件名
* @param opfp
* 目标文件路径
* @param opfn
* 目标文件名
*/
public ZIPImage(String ipfp, String ipfn, String opfp, String opfn) {
outPutFilePath = opfp;
inPutFilePath = ipfp;
inPutFileName = ipfn;
autoBuildFileName = true;
outPutFileName = opfn;
}
/**
*
* @param ipfp
* 源文件夹路径
* @param ipfn
* 源文件名
* @param opfp
* 目标文件路径
* @param opfn
* 目标文件名
* @param aBFN
* 是否自动生成目标文件名
*/
public ZIPImage(String ipfp, String ipfn, String opfp, String opfn,
boolean aBFN) {
outPutFilePath = opfp;
inPutFilePath = ipfp;
inPutFileName = ipfn;
autoBuildFileName = aBFN;
outPutFileName = opfn;
}
public boolean isAutoBuildFileName() {
return autoBuildFileName;
}
public void setAutoBuildFileName(boolean autoBuildFileName) {
= autoBuildFileName;
}
public String getInPutFilePath() {
return inPutFilePath;
}
public void setInPutFilePath(String inPutFilePath) {
= inPutFilePath;
}
public String getOutPutFileName() {
return outPutFileName;
}
public void setOutPutFileName(String outPutFileName) {
= outPutFileName;
}
public String getOutPutFilePath() {
return outPutFilePath;
}
public void setOutPutFilePath(String outPutFilePath) {
= outPutFilePath;
}
public int getOutPutFileHeight() {
return outPutFileHeight;
}
public void setOutPutFileHeight(int outPutFileHeight) {
= outPutFileHeight;
}
public int getOutPutFileWidth() {
return outPutFileWidth;
}
public void setOutPutFileWidth(int outPutFileWidth) {
= outPutFileWidth;
}
public boolean isScaleZoom() {
return isScaleZoom;
}
public void setScaleZoom(boolean isScaleZoom) {
= isScaleZoom;
}
public String getInPutFileName() {
return inPutFileName;
}
public void setInPutFileName(String inPutFileName) {
= inPutFileName;
}
/**
* 压缩图片大小
*
* @return boolean
*/
public boolean compressImage() {
boolean flag = false;
try {
if (().equals("")) {
throw new NullPointerException("源文件夹路径不存在。");
}
if (().equals("")) {
throw new NullPointerException("图片文件路径不存在。");
}
if (().equals("")) {
throw new NullPointerException("目标文件夹路径地址为空。");
} else {
if (!(outPutFilePath)) {
throw new FileNotFoundException(outPutFilePath
+ " 文件夹创建失败!");
}
}
if () { // 自动生成文件名
String tempFile[] = getFileNameAndExtName(inPutFileName);
outPutFileName = tempFile[0] + "_cyw." + tempFile[1];
compressPic();
} else {
if (().equals("")) {
throw new NullPointerException("目标文件名为空。");
}
compressPic();
}
} catch (Exception e) {
flag = false;
e.printStackTrace();
return flag;
}
return flag;
}
// 图片处理
private void compressPic() throws Exception {
try {
// 获得源文件
file = new File(inPutFilePath + inPutFileName);
if (!()) {
throw new FileNotFoundException(inPutFilePath + inPutFileName
+ " 文件不存在!");
}
Image img = (file);
// 判断图片格式是否正确
if ((null) == -1) {
throw new Exception("文件不可读!");
} else {
int newWidth;
int newHeight;
// 判断是否是等比缩放
if ( == true) {
// 为等比缩放计算输出的图片宽度及高度
double rate1 = ((double) (null))
/ (double) outPutFileWidth + 0.1;
double rate2 = ((double) (null))
/ (double) outPutFileHeight + 0.1;
// 根据缩放比率大的进行缩放控制
double rate = rate1 > rate2 ? rate1 : rate2;
newWidth = (int) (((double) (null)) / rate);
newHeight = (int) (((double) (null)) / rate);
} else {
newWidth = outPutFileWidth; // 输出的图片宽度
newHeight = outPutFileHeight; // 输出的图片高度
}
BufferedImage tag = new BufferedImage((int) newWidth,
(int) newHeight, _INT_RGB);
/*
* _SMOOTH 的缩略算法 生成缩略图片的平滑度的 优先级比速度高 生成的图片质量比较好 但速度慢
*/
().drawImage(
(newWidth, newHeight,
_SMOOTH), 0, 0, null);
FileOutputStream out = new FileOutputStream(outPutFilePath
+ outPutFileName);
JPEGImageEncoder encoder = (out);
(tag);
();
}
} catch (IOException ex) {
();
}
}
/**
* 创建文件夹目录
*
* @param filePath
* @return
* @throws Exception
*/
@SuppressWarnings("unused")
private static boolean mddir(String filePath) throws Exception {
boolean flag = false;
File f = new File(filePath);
if (!f.exists()) {
flag = f.mkdirs();
} else {
flag = true;
}
return flag;
}
/**
* 获得文件名和扩展名
*
* @param fullFileName
* @return
* @throws Exception
*/
private String[] getFileNameAndExtName(String fullFileName)
throws Exception {
String[] fileNames = new String[2];
if ((".") == -1) {
throw new Exception("源文件名不正确!");
} else {
fileNames[0] = (0, fullFileName
.lastIndexOf("."));
fileNames[1] = fullFileName
.substring((".") + 1);
}
return fileNames;
}
public Image getSourceImage() throws IOException{
//获得源文件
file = new File(inPutFilePath + inPutFileName);
if (!()) {
throw new FileNotFoundException(inPutFilePath + inPutFileName
+ " 文件不存在!");
}
Image img = (file);
return img;
}
/*
* 获得图片大小
* @path :图片路径
*/
public long getPicSize(String path) {
File file = new File(path);
return ();
}
}
//下面是测试程序
package ;
import ;
import ;
public class ImageTest {
public static void main(String[] args) throws IOException {
ZIPImage zip=new ZIPImage("d:\\","1.jpg","d:\\test\\","处理后的图片.jpg",false);
(1000);
(1000);
Image image=();
long size=("d:\\1.jpg");
("处理前的图片大小 width:"+(null));
("处理前的图片大小 height:"+(null));
("处理前的图片容量:"+ size +" bit");
();
}
}
-
果盘绘画图片大全简单创作方法快速制作技巧2024-01-02 16:57:54
-
小年插画图片创作方法快速制作技巧2024-01-02 16:57:20
-
小年绘画作品制作技巧2024-01-02 16:55:45
-
小年插画图片创作方法快速制作技巧2024-01-02 16:55:02
-
立春插画图片如何制作2024-01-02 16:54:19
-
立春插画图片创作方法快速制作技巧2024-01-02 16:53:32






扫描二维码添加客服微信
扫描二维码关注