96编辑器旗下产品
找图
终身
ID:0
到期时间:永久
退出登录
您的位置:首页 > 百科管理 > 详情

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

原创:找图网 2023-04-14 05:44:24
  • 有什么压缩图片的软件

  • 压缩图片的软件有很多,想要压缩效果好又保持清晰度,那就给大家安利一款真正良心好用的压缩软件:嗨格式压缩大师。

    这是一款集视频压缩、图片压缩、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");

    ();

    }

    }

    最新文章 更多
    最新素材 更多
    公司介绍 网站地图 图片资讯
    Copyright © 2010-2022 山东找图网络科技有限公司  鲁ICP备18007836号-3  邮箱:15653358549@163.com