`
yangxianjiangg
  • 浏览: 62619 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java实现图像缩略

阅读更多
import java.io.*;    
import java.util.*;    
import com.sun.image.codec.jpeg.*;    
import java.awt.image.*;    
import java.awt.*;    
import java.net.*;    
import java.applet.*;    
import java.sql.*;    
//缩略图类,    
//本java类能将jpg图片文件,进行等比或非等比的大小转换。    
//具体使用方法    
//s_pic(大图片路径,生成小图片路径,大图片文件名,生成小图片文名,生成小图片宽度,生成小图片高度,是否等比缩放(默认为true))    
public class DwindlePic{    
   String InputDir; //输入图路径    
   String OutputDir; //输出图路径    
   String InputFileName; //输入图文件名    
   String OutputFileName; //输出图文件名    
int OutputWidth = 80; //默认输出图片宽    
int OutputHeight = 80; //默认输出图片高    
int rate = 0;    
boolean proportion = true; //是否等比缩放标记(默认为等比缩放)    
   
public DwindlePic() {    
    //初始化变量    
     InputDir = "";    
     OutputDir = "";    
     InputFileName = "";    
     OutputFileName = "";    
     OutputWidth = 80;    
     OutputHeight = 80;    
     rate = 0;    
   }    
   
public void setInputDir(String InputDir) {    
    this.InputDir = InputDir;    
   }    
   
public void setOutputDir(String OutputDir) {    
    this.OutputDir = OutputDir;    
   }    
   
public void setInputFileName(String InputFileName) {    
    this.InputFileName = InputFileName;    
   }    
   
public void setOutputFileName(String OutputFileName) {    
    this.OutputFileName = OutputFileName;    
   }    
   
public void setOutputWidth(int OutputWidth) {    
    this.OutputWidth = OutputWidth;    
   }    
   
public void setOutputHeight(int OutputHeight) {    
    this.OutputHeight = OutputHeight;    
   }    
   
public void setW_H(int width, int height) {    
    this.OutputWidth = width;    
    this.OutputHeight = height;    
   }    
   
public String s_pic() {    
     BufferedImage image;    
     String NewFileName;    
//建立输出文件对象    
     File file = new File(OutputDir + OutputFileName);    
     FileOutputStream tempout = null;    
    try {    
       tempout = new FileOutputStream(file);    
     }    
    catch (Exception ex) {    
       System.out.println(ex.toString());    
     }    
     Image img = null;    
     Toolkit tk = Toolkit.getDefaultToolkit();    
     Applet app = new Applet();    
     MediaTracker mt = new MediaTracker(app);    
    try {    
       img = tk.getImage(InputDir + InputFileName);    
       mt.addImage(img, 0);    
       mt.waitForID(0);    
     }    
    catch (Exception e) {    
       e.printStackTrace();    
     }    
   
    if (img.getWidth(null) == -1) {    
       System.out.println(" can't read,retry!" + "<BR>");    
      return "no";    
     }    
    else {    
      int new_w;    
      int new_h;    
      if (this.proportion == true) { //判断是否是等比缩放.    
//为等比缩放计算输出的图片宽度及高度    
        double rate1 = ( (double) img.getWidth(null)) / (double) OutputWidth +    
            0.1;    
        double rate2 = ( (double) img.getHeight(null)) / (double) OutputHeight +    
            0.1;    
        double rate = rate1 > rate2 ? rate1 : rate2;    
         new_w = (int) ( ( (double) img.getWidth(null)) / rate);    
         new_h = (int) ( ( (double) img.getHeight(null)) / rate);    
       }    
      else {    
         new_w = OutputWidth; //输出的图片宽度    
         new_h = OutputHeight; //输出的图片高度    
       }    
       BufferedImage buffImg = new BufferedImage(new_w, new_h,    
                                                 BufferedImage.TYPE_INT_RGB);    
   
       Graphics g = buffImg.createGraphics();    
   
       g.setColor(Color.white);    
       g.fillRect(0, 0, new_w, new_h);    
   
       g.drawImage(img, 0, 0, new_w, new_h, null);    
       g.dispose();    
   
       JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(tempout);    
      try {    
         encoder.encode(buffImg);    
         tempout.close();    
       }    
      catch (IOException ex) {    
         System.out.println(ex.toString());    
       }    
     }    
    return "ok";    
   }    
   
public String s_pic(String InputDir, String OutputDir, String InputFileName,    
                       String OutputFileName) {    
//输入图路径    
    this.InputDir = InputDir;    
//输出图路径    
    this.OutputDir = OutputDir;    
//输入图文件名    
    this.InputFileName = InputFileName;    
//输出图文件名    
    this.OutputFileName = OutputFileName;    
    return s_pic();    
   }    
   
public String s_pic(String InputDir, String OutputDir, String InputFileName,    
                       String OutputFileName, int   
                       width, int height, boolean gp) {    
//输入图路径    
    this.InputDir = InputDir;    
//输出图路径    
    this.OutputDir = OutputDir;    
//输入图文件名    
    this.InputFileName = InputFileName;    
//输出图文件名    
    this.OutputFileName = OutputFileName;    
//设置图片长宽    
     setW_H(width, height);    
//是否是等比缩放 标记    
    this.proportion = gp;    
    return s_pic();    
   }    
/** 
   public static void main(String[] a) 
   { 
//s_pic(大图片路径,生成小图片路径,大图片文件名,生成小图片文名,生成小图片宽度,生成小图片高度) 
     DwindlePic mypic = new DwindlePic(); 
     System.out.println( 
         mypic.s_pic("e:\\Tomcat\\webapps\\pms\\image\\", 
                     "e:\\Tomcat\\webapps\\pms\\image\\", 
                     "test.jpg", "new.jpg", 120, 80, true) 
         ); 
   } 
*/   
}   

 

 

分享到:
评论

相关推荐

    java 图片生成缩略图

    "java 图片生成缩略图" Java 图片生成缩略图是Java程序开发中一个常见的需求,通过将图片以缩略图形式展示,可以提高用户体验和网站性能。在本文中,我们将介绍使用Java生成缩略图的方法。 缩略图生成方法 在 ...

    JAVA获取视频缩略图

    首先,Java本身并不直接支持从视频文件中提取缩略图,但可以通过第三方库如JMF(Java Media Framework)或FFmpeg来实现。不过,JMF已经较为过时,目前更推荐使用FFmpeg库,它是一个强大的多媒体处理工具,提供了跨...

    java 上传图片生成缩略图

    本文介绍了使用Java实现上传图片并生成缩略图的方法,包括获取文件路径、读取图像、创建缩略图及保存缩略图等步骤。通过这种方式,可以在不损失原图质量的前提下,有效地减少加载时间,提升用户体验。此外,本文还...

    java图片缩放 java缩略图 缩略图 java图片处理

    java图片缩放 java缩略图 缩略图 java图片处理

    java 缩略图实现

    总的来说,Java提供了一套强大的图像处理工具,可以方便地实现缩略图的生成。理解并熟练运用这些APIs,不仅可以帮助开发者在项目中创建高效的图像处理功能,还能为用户带来更好的体验。在实际应用中,还可以结合其他...

    Java实现图片等比例缩略图

    本篇文章将深入探讨如何使用Java实现图片的等比例缩略图,并提供相关代码示例。 首先,我们需要了解等比例缩略图的概念。等比例缩略图是指在保持原图宽高比的基础上,根据指定的最大尺寸进行缩小或放大。这样可以...

    java生成高清缩略图不丢真,java压缩图片

    网上找的缩略图生成方法都不够清晰,于是决定自己研究和改进生成缩略图方法。此方法压缩后的图片小,清晰度高,压缩速度快。5000张图片大概抽根烟的功夫就压缩完了。高清的哦。各种参数都是可配的,方便移植到自己...

    java上传图片,处理图片,word转pdf图片缩略图生成

    java上传图片,处理图片,word转pdf图片缩略图生成,替换所有图片的ip地址工具类

    java实现将图片和缩略图存储到数据库中.pdf

    ### Java 实现将图片和缩略图存储到数据库中的详细解析 #### 一、知识点概述 本文档主要介绍如何使用Java编程语言实现将图片及其对应的缩略图存储到数据库中的功能。这一技术在多种场景下都非常有用,比如在线商城...

    java视频生成图片(缩略图)-实例-(指定时间)

    以上就是关于"Java视频生成图片(缩略图)-实例-(指定时间)"的主要知识点,涵盖了从选择合适的库到实现具体功能的各种技术细节。在实际项目中,根据需求和资源可用性,可以选择最适合的方案来实现。

    java实现缩略图

    缩略图类(通用) 本java类能将jpg、bmp、png、gif图片文件,进行等比或非等比的大小转换。

    javapng透明图片缩略

    1. **Java图像处理库**: - Java标准库(JDK)中的`javax.imageio`和`java.awt.image`包提供了基本的图像处理功能,包括读取、写入和缩放图像。然而,这些内置方法对于PNG透明度的支持有限。 - 为了获得更好的效果...

    java 图片处理 缩略

    代码中可以将大图片通过设定的分辨率生成小规格的图片,方便web程序页面浏览。

    java生成图片缩略图和二进制文件的工具类

    将图片生成缩略图和转换为二进制的工具类,缩略图大小可调

    图片缩略图以及poi生成excel文档

    平时工作中用到的一些技术点,拿出来和大家共享一下。 有些功能比较粗糙,如果大家有更加完善的示例或建议,欢迎交流。...1、jpg图片缩略图:ImageUtil 2、poi创建excel:CDSHdlReport 3、计算表达式求值:Cal

    动态缩略图实现方案

    在Java中实现动态缩略图涉及到图像处理和流媒体技术。下面我们将深入探讨这个话题。 首先,Java提供了丰富的API来处理图像,如Java Advanced Imaging (JAI)库和Java 2D API。在Java 2D API中,`java.awt.image`和`...

    java缩略图代码

    在 Java 中生成图片缩略图是一项常见的需求,这通常涉及到图像处理技术。以下是一个 Java 类 `GetPicture` 的示例,它包含了获取网络图片、截取屏幕以及创建图片缩略图的功能。我们将详细解释其中的关键知识点。 1....

    java图片生成缩略图

    * 压缩图片方法 * * @param oldFile 将要压缩的图片 * @param width 压缩宽 * @param height 压缩高 * @param quality 压缩清晰度 建议为1.0 * @param smallIcon 压缩图片后,添加的扩展名(在图片后缀名前添加...

    java缩略图

    一个不错的工具类,上传的图片根据长宽的判断,按比例缩放生成另一张小图,可以减少浏览的浪费

Global site tag (gtag.js) - Google Analytics