`

本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进制的数据

    在Java编程中,处理图像数据并将其转换为16进制表示是一项常见的任务,尤其是在...运行这段代码,你将得到.jpg图片文件最后16个字节的16进制表示。这个过程对于理解文件结构、进行数据比较或分析具有一定的实用价值。

    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实现TXT文件转图片

    ### Java实现TXT文件转图片 #### 背景与需求 在特定的应用场景下,将文本文件转换为图像格式的需求可能会出现。例如,在创建电子书、海报或是其他类型的媒体时,有时需要将纯文本信息转化为视觉友好的图像形式。...

    java实现的PDF与JPG文件互转

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

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

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

    java实现图片转pdf文件

    5. **添加图片**:使用`Image`类加载图片文件,并将其添加到PDF文档中。iText支持多种图像格式,如JPEG、PNG等。 ```java Image image = Image.getInstance("image.jpg"); document.add(image); ``` 6. **关闭文档**...

    java压缩jpg和gif图片文件

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

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

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

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

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

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

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

    java实现html文件转换成图片

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

    Java将图片合并为视频

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

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

    使用`FileInputStream`类读取图片文件,然后将其内容转换为字节数组。以下是一个简单的示例: ```java File imageFile = new File("1.jpg"); FileInputStream fis = new FileInputStream(imageFile); byte[] ...

    JPG图片文件转换为PDF

    通过以上方法,无论是个人用户还是专业开发者,都能根据自己的需求和条件轻松将JPG图片文件转换为PDF格式,方便管理和分享。对于【绿盟.url】,它可能是一个链接,指向与JPG转PDF相关的资源或教程,用户可以点击访问...

    Java实现HEIC格式图片转换

    在java中通过ImageMagick安装包和im4java.jar把其他格式图片如HEIC转换为PNG,JPEG等常用格式图片。内有安装操作步骤及编码内容。亲测有效。 场景运用:ios操作系统在前端图片格式上传中。已普遍采用HEIC格式图片。...

    java 按顺序读取文件

    至于`Java.jpg`文件,它通常表示一个图片文件,而不是文本文件。如果需要读取图片数据,可以使用`ImageIO`类或其他图像处理库,但这超出了“按顺序读取文件”的范畴,因为图片数据通常是二进制格式,而非文本。 ...

    java获取DICOM格式图片demo

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

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

    - **权限问题**:确保Java程序有读取PDF文件和写入图片文件的权限。 - **编码问题**:如果PDF包含非ASCII字符,可能需要处理编码。PDFBox支持Unicode,但确保文件路径和PDF内容正确编码至关重要。 - **内存管理**...

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

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

Global site tag (gtag.js) - Google Analytics