`
莫生气
  • 浏览: 866082 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java实现图像缩略

    博客分类:
  • Java
阅读更多
//缩略图实现,将图片(jpg,gif,bmp等等)真实的变成想要的大小
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视频生成图片(缩略图)-实例-(指定时间)

    以上就是关于"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缩略图

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

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

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

Global site tag (gtag.js) - Google Analytics