广告
返回顶部
首页 > 资讯 > 后端开发 > Python >java项目实现图片等比缩放
  • 829
分享到

java项目实现图片等比缩放

2024-04-02 19:04:59 829人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

本文实例为大家分享了java项目实现图片等比缩放的具体代码,供大家参考,具体内容如下 package common;   import java.awt.Image; import

本文实例为大家分享了java项目实现图片等比缩放的具体代码,供大家参考,具体内容如下

package common;
 
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.imageio.ImageIO;
 
public class ImageCompressionTask implements Runnable{
      
    private InputStream is;
    private String fileName;
    private int width;
    private int height;
 
    
    public ImageCompressionTask(InputStream is,String fileName,int width,int height) {
        this.is=is;
        this.fileName=fileName;
        this.width=width;
        this.height=height;        
    }
 
    public void run() {
        // TODO Auto-generated method stub
        try{
            this.compressPic();
        }catch(Exception e){
            System.out.println("文件压缩失败"+e);
        }
        
    }
    
    private String compressPic() throws Exception{
        String path = "E:\\xie\\";//新图片存放路径
        String urlPath =  path + fileName;
        BufferedImage buffImage;
        FileOutputStream output=null;
        BufferedImage compressPic=null;
        try {
            
            String imagetype = "";
            if(fileName.lastIndexOf(".") != -1){
                imagetype = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
            }
            
            imagetype = imagetype.toLowerCase(); //文件后缀名
            output=new FileOutputStream(urlPath);
            buffImage=ImageIO.read(is);
            //图片缩放
            compressPic=compressPicMin(buffImage,width,height);
            //输出图片
            ImageIO.write(compressPic, imagetype, output);
        } finally {
            if(output!=null){
               try{
                  output.close();
               }catch(IOException e){
                   e.getStackTrace();
               }
            }
            if(is!=null){
               is.close();
            }
        }
        return fileName;
        
    }
 
    
    private BufferedImage compressPicMin(BufferedImage image,
    int outputWidth, int outputHeight) {
        // TODO Auto-generated method stub
        if(image==null){
            return null;
        }
        
        //如果图片本身的宽和高均小于要压缩到的宽和高,则不压缩直接返回
        if(outputWidth>image.getWidth(null)&&outputHeight>image.getHeight(null)){
            return image;
        }
        
        int newWidth;
        int newHeight;
        //宽和高等比缩放的率
        double rate1=(double)image.getWidth(null)/(double)outputWidth;
        double rate2=(double)image.getHeight(null)/(double)outputHeight;
        //控制缩放大小
        double rate=rate1<rate2 ? rate1:rate2;
        newWidth=(int) (image.getWidth(null)/rate);
        newHeight=(int) (image.getHeight(null)/rate);
        
        BufferedImage newImage=new BufferedImage(newWidth, newHeight,BufferedImage.TYPE_INT_RGB);
        newImage.createGraphics().drawImage(image.getScaledInstance(newWidth, outputHeight, Image.SCALE_SMOOTH), 0, 0, null);
 
        return newImage;
    }
    
    public int getWidth() {
        return width;
    }
 
 
    public void setWidth(int width) {
        this.width = width;
    }
 
 
    public int getHeight() {
        return height;
    }
 
 
    public void setHeight(int height) {
        this.height = height;
    }
 
 
}

创建ImageTest写一个main()

package test1; 
 
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.SynchronousQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
 
import common.ImageCompressionTask;
 
 
public class ImageTest {
 
    public static void main(String[] args){
        String imgName = System.currentTimeMillis() + "_" + ((int) (Math.random() * 900) + 100) + "." + "jpg";
        File f=new File("E:\\xie\\xxx.jpg");
        try {
            InputStream input = new FileInputStream(f);
            ImageCompressionTask r=new ImageCompressionTask(input, imgName, 520, 320);
            
            
            
            
            
             newCachedThreadPool().execute(r);
             //newSingleThreadExecutor().execute(r);
             //newFixedThreadPool(10).execute(r);
            System.out.println("图片上传成功");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    
    public static ExecutorService newCachedThreadPool() {
        return new ThreadPoolExecutor(0, Integer.MAX_VALUE,
                                      60L, TimeUnit.SECONDS,
                                      new SynchronousQueue<Runnable>());
    }
    
    
    public static ExecutorService newSingleThreadExecutor() {
        return  new ThreadPoolExecutor(1, 1,
                                    0L, TimeUnit.MILLISECONDS,
                                    new LinkedBlockingQueue<Runnable>());
    }
    
    
    public static ExecutorService newFixedThreadPool(int nThreads) {
        return new ThreadPoolExecutor(nThreads, nThreads,
                                      0L, TimeUnit.MILLISECONDS,
                                      new LinkedBlockingQueue<Runnable>());
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: java项目实现图片等比缩放

本文链接: https://www.lsjlt.com/news/146939.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java项目实现图片等比缩放
    本文实例为大家分享了java项目实现图片等比缩放的具体代码,供大家参考,具体内容如下 package common;   import java.awt.Image; import ...
    99+
    2022-11-13
  • Java实现图片比率缩放
    本文实例为大家分享了Java实现图片比率缩放的具体代码,供大家参考,具体内容如下 通过Thumbnails实现图片缩放 需要导入pom依赖,可以到中央仓库获取最小的工具包 <d...
    99+
    2022-11-13
  • Java实现的微信图片处理工具类【裁剪,合并,等比例缩放等】
    本文实例讲述了Java实现的微信图片处理工具类。分享给大家供大家参考,具体如下:现在 外面核心,图片文章比较少,看了拷贝代码,而用不了,用相应jar包处理,很多等比例缩放,达不到 想要的给予的期望:本工具类,是之前做微信打印机写的 基于ja...
    99+
    2023-05-30
    java 图片 工具类
  • 小程序如何实现图片宽度高度等比例缩放
    这篇文章主要介绍了小程序如何实现图片宽度高度等比例缩放,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。  开发小程序初期,很多时候,图片的显示效果,不是拉长式,就是又扁又宽,在...
    99+
    2023-06-26
  • HTML5 Canvas如何实现图片缩放比例
    小编给大家分享一下HTML5 Canvas如何实现图片缩放比例,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! drawImage方法的又一变种是增加了两个用于控制图像在canvas中缩放...
    99+
    2022-10-19
  • Java实现按比例缩小图片
    本文实例为大家分享了Java实现按比例缩小图片的具体代码,供大家参考,具体内容如下 使用spring注解上传文件@RequestParam(value="", r...
    99+
    2022-11-13
  • 如何利用layui等比例放大或缩小图片
    这篇文章主要讲解了“如何利用layui等比例放大或缩小图片”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何利用layui等比例放大或缩小图片”吧!HTML...
    99+
    2022-10-19
  • Android图片等比例缩放和填充屏幕效果
    本文实例为大家分享了Android图片等比例缩放和填充屏幕的具体代码,供大家参考,具体内容如下第一种方法:在ImageView的t同事设置两个属性 android:adjustViewBounds="true" android:scaleT...
    99+
    2023-05-30
    android 图片等比缩放 填充屏幕
  • ps图片等比例放大缩小快捷键是什么
    这篇文章主要介绍“ps图片等比例放大缩小快捷键是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ps图片等比例放大缩小快捷键是什么”文章能帮助大家解决问题。ps图片等比例放大缩小快捷键:首先我们拖...
    99+
    2023-07-02
  • java 实现图片像素质量压缩与图片长宽缩放
    目录java 图片像素质量压缩与图片长宽缩放java 修改图片dpi(像素/大小)java 图片像素质量压缩与图片长宽缩放 今天找到的这个方法比以前项目用到的方法更好,这里记录下,方...
    99+
    2022-11-12
  • Java怎么实现按比例缩小图片
    这篇文章主要讲解了“Java怎么实现按比例缩小图片”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java怎么实现按比例缩小图片”吧!使用spring注解上传文件@RequestParam(v...
    99+
    2023-06-30
  • 如何使用css实现图片在页面上以相同等比例显示缩放
    这篇文章给大家分享的是有关如何使用css实现图片在页面上以相同等比例显示缩放的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   css图片等比例显示具体代码示例如下:   &...
    99+
    2022-10-19
  • 网页中img图片怎么使用css实现等比例自动缩放不变形
    本文小编为大家详细介绍“网页中img图片怎么使用css实现等比例自动缩放不变形”,内容详细,步骤清晰,细节处理妥当,希望这篇“网页中img图片怎么使用css实现等比例自动缩放不变形”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来...
    99+
    2023-07-05
  • Android实现图片双指缩放
    本文实例为大家分享了Android实现图片双指缩放的具体代码,供大家参考,具体内容如下 展示 源码 using Android.App; using Android.OS; u...
    99+
    2022-11-12
  • vue怎么实现图片缩放
    这篇“vue怎么实现图片缩放”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue怎么实现图片缩放”文章吧。实现效果如下这几天...
    99+
    2023-06-30
  • css怎么实现改变图片大小按比例缩放
    本篇内容介绍了“css怎么实现改变图片大小按比例缩放”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先,在页面中创建一个img标签,并插入图...
    99+
    2023-07-04
  • 基于RxPaparazzo实现图片裁剪、图片旋转、比例放大缩小功能
    前言:基于RxPaparazzo的图片裁剪,图片旋转、比例放大|缩小。效果: 开发环境:AndroidStudio2.2.1+gradle-2.14.1 涉及知识:Material Design(CardView+Coo...
    99+
    2023-05-31
    rxpaparazzo 图片裁剪 para
  • Android开发之imageView图片按比例缩放的实现方法
    本文实例讲述了Android开发之imageView图片按比例缩放的实现方法。分享给大家供大家参考,具体如下: android:scaleType可控制图片的缩放方式,示例代码...
    99+
    2022-06-06
    方法 android开发 Android
  • Android 背景图片的缩放实现
    Android 背景图片的缩放  ONE Goal ,ONE Passion ! 我们看到一些效果,控件中的背景图片会慢慢变大,但是控件不会随着图片的放大而变大.效...
    99+
    2022-06-06
    图片 背景图 Android
  • Android 在viewPager中双指缩放图片双击缩放图片单指拖拽图片的实现思路
    我们就把这个问题叫做图片查看器吧,它的主要功能有:双击缩放图片。 双指缩放图片。单指拖拽图片。为此这个图片查看器需要考虑以下的技术点:一、双击缩放图片:如果图片高度比屏幕的高度小得多,那么就将图片放大到高度与屏幕高度相等,否则就放大一个特定...
    99+
    2023-05-31
    android viewpager 图片缩放
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作