`
wyz191
  • 浏览: 96552 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

本java类能将jpg图片文件养

阅读更多

package com.binghe.pub.util;

import java.io.*;
import com.sun.image.codec.jpeg.*;
import java.awt.image.*;
import java.awt.*;
import java.applet.*;

//缩略图类,
//本java类能将jpg图片文件,进行等比或非等比的大小转换。
//具体使用方法
//s_pic(大图片路径,生成小图片路径,大图片文件名,生成小图片文名,生成小图片宽度,生成小图片高度,是否等比缩放(默认为true))
public class SmallPic {
 String InputDir; // 输入图路径

 String OutputDir; // 输出图路径

 String InputFileName; // 输入图文件名

 String OutputFileName; // 输出图文件名

 int OutputWidth = 80; // 默认输出图片宽

 int OutputHeight = 80; // 默认输出图片高

 int rate = 0;

 boolean proportion = true; // 是否等比缩放标记(默认为等比缩放)

 public SmallPic() {
  // 初始化变量
  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() {
  // 建立输出文件对象
  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(大图片路径,生成小图片路径,大图片文件名,生成小图片文名,生成小图片宽度,生成小图片高度)
//  Small_pic mypic = new Small_pic();
//  System.out.println(mypic.s_pic(
//    "E:\\JAVA\\J2EEDatum\\王亮jsp资料\\缩图例子\\personal\\",
//    "E:\\JAVA\\J2EEDatum\\酒剑仙jsp资料\\缩图例子\\personal\\", "1.jpg",
//    "new1.jpg", 80, 80, true));
// }

}

分享到:
评论

相关推荐

    通过java编程得到.jpg图片16进制的数据

    本示例中,我们关注的是如何读取一个.jpg格式的图片文件,并提取其最后部分的数据,将其转换为16进制字符串。以下是实现这一功能的关键步骤和相关知识点: 1. **文件输入输出流(FileInputStream和FileOutputStream...

    java程序将tif文件转为jpg所需jar包

    这段代码首先加载了TIFF文件,然后使用JAI的`getAsBufferedImage()`方法将其转换为Java的`BufferedImage`对象,最后通过`ImageIO.write()`方法将该图像保存为JPEG格式。 需要注意的是,JAI库可能对内存消耗较大,...

    java互转jpg和raw格式图片

    本篇文章将详细探讨如何利用Java与JAI-ImageIO库进行JPEG(jpg)与RAW格式图片之间的转换。 首先,让我们了解这两种图像格式。JPEG(Joint Photographic Experts Group)是一种广泛使用的有损压缩图像格式,适用于...

    java 实现 JPG图像文件转换TIFF文件 有源码。有工程

    本话题主要关注的是如何使用Java来实现JPG图像文件转换为TIFF(Tagged Image File Format)文件的流程。TIFF是一种灵活的位图图像格式,广泛用于扫描、打印、光栅图像处理软件,以及在各种操作系统中使用。以下是对...

    java实现的PDF与JPG文件互转

    对于JPG到PDF的转换,我们可以使用Java的ImageIO类读取JPG图片,然后利用PDFBox创建一个新的PDF文档,并将每张图片添加为一个页面。以下是一个基本的实现: ```java import org.apache.pdfbox.pdmodel....

    java压缩jpg和gif图片文件

    本文将深入探讨如何使用Java来压缩JPEG(jpg)和GIF格式的图片文件。GIF压缩通常涉及到位图数据的有损或无损压缩算法,而JPEG则是一种广泛使用的有损压缩标准,尤其适合于照片类的连续色调图像。 首先,我们需要...

    jpg图片转换成十六进制字符文件

    标题中的“jpg图片转换成十六进制字符文件”是指一种技术操作,即将JPEG格式的图片文件转换成由十六进制数字组成的文本文件。这种转换在编程和数据处理中很有用,因为图片本质上是由二进制数据构成的,而十六进制是...

    java实现图片转pdf文件

    在Java编程环境中,将图片转换为PDF文件是一个常见的需求,特别是在文档管理和电子出版领域。这里,我们将探讨如何使用Java和特定库,如iText,来完成这个任务。iText是一个强大的开源库,专门用于创建和修改PDF文档...

    java实现多张png,jpg等各种图片文件转动态gif图

    2. **读取图片文件**:使用Java的`FileInputStream`读取PNG或JPG文件,然后用gif4j库提供的API将其转化为`GIF89aImage`对象。 3. **创建GIF动画**:初始化一个`GIF89a`对象,这将是最终的GIF动画容器。你可以设置...

    java画图程序(java画图 java 编辑保存读取jpg图片)

    在Java中,这可以通过`java.io.File`类来实现,或者在`ImageIO`类中直接指定文件路径。 6. **主方法与程序启动**: 提到的`hysun.draw.AppFrame`可能包含程序的主入口点,即`public static void main(String[] args)...

    Java实现字节流与图片的转化

    本教程将详细讲解如何使用Java实现字节流来转换和处理图片。 首先,我们需要理解字节流的概念。在Java中,字节流分为两种类型:输入字节流(InputStream)和输出字节流(OutputStream)。它们分别用于读取和写入...

    java实现html文件转换成图片

    本代码实现html文件转换成一个图片的功能。附件包含所需要的包。 注:该代码转换的html文件必须一个屏幕能展现出来的,如果内容太多一个屏幕展现不出来则不能很好的转换。所以该代码只适用于内容不太多的html文件。...

    Java将图片合并为视频

    1. **图片读取**:使用Java的`BufferedImage`类读取图片文件,或者使用第三方库如`ImageIO`进行更高效的操作。 2. **帧序列创建**:将每张图片转换为FFmpeg可识别的帧格式,通常为JPEG或PNG。 3. **视频参数设置**:...

    java 实现 bmp 转 jpg

    本教程将详细介绍如何在Java中实现这个转换过程,并提供相关的源代码示例。 首先,我们需要理解BMP和JPEG文件格式的基本结构。BMP文件通常包含图像数据、颜色配置信息和位图信息头。JPEG文件则采用DCT(离散余弦...

    java 按顺序读取文件

    本篇文章将深入探讨如何在Java中实现按顺序读取文件,以及涉及的相关知识点。 首先,Java提供了多种类来处理文件读取,如`FileReader`,`BufferedReader`等。`FileReader`主要用于读取字符流,而`BufferedReader`则...

    tiff 转换 jpg java 亲测过了

    TIFF(Tagged Image File Format)是一种非常灵活的图像文件格式,广泛用于专业摄影和图形设计领域,因为它能存储高质量的图像数据,并支持多种压缩算法和色彩模式。然而,在网络分享或某些应用中,JPG(Joint ...

    java获取DICOM格式图片demo

    本教程主要讲解如何使用Java处理DICOM格式的图像,并将其转换为常见的png、JPG或jpeg格式。 首先,我们需要一个能够读取和操作DICOM文件的Java库。常见的选择是DCMTK(DICOM Toolkit),但它是C++库,需要通过JNI...

    java pdf转化成jpg 遇到的问题,请教高手。

    在Java编程环境中,将PDF文件转换为JPEG图片是一项常见的任务,尤其在处理文档可视化或创建网页缩略图时。在你的问题中,你遇到了一些挑战,可能是由于编码、依赖库的使用或者是具体实现细节上的问题。这篇内容将...

    java实现jpeg图片序列转avi格式

    本篇文章将详细讲解如何使用Java将JPEG图片序列转换为AVI视频格式,这对于那些需要将一系列静态图片组合成动态视频的场景非常有用。 首先,我们需要了解JPEG(Joint Photographic Experts Group)是一种常见的图像...

    通过URL地址获取网页生成jpg图片

    本教程将详细介绍如何通过URL地址获取网页并生成jpg图片,同时解决32位和64位运行环境下的兼容性问题。我们将主要使用Java语言来实现这一功能,因为它具有丰富的库和跨平台的特性。 首先,我们需要一个能够处理网络...

Global site tag (gtag.js) - Google Analytics