下载相应包(JimiProClasses.zip)并加到classpath,是个zip文件;
1.简单处理
- import com.sun.jimi.core.*;
- import java.awt.Image;
- public class JimiIsReallyEasy
- {
- public static void main(String[] args) throws JimiException
- {
- if (args.length < 2) {
- System.err.println("Usage: JimiIsReallyEasy <source></source> <dest></dest>");
- }
- else {
- Image image = Jimi.getImage(args[0]);
- Jimi.putImage(image, args[1]);
- System.exit(0);
- }
- }
- }
这样处理的结果图片变小了,效果却还可以,肉眼感觉不出
============================================================================================================================================
2. ColorReduce对图片颜色的降低处理
1)先准备一张图片,方便测试,放在与java文件同目录下
2)写代码ColorReduceTest.java
这里主要用到com.sun.jimi.core.util.ColorReducer这个类,在起demo中有错误,多了个util,去了就可以了;
- import com.sun.jimi.core.*;//有相关的异常类,Jimi类,以及相应的JimiReader,JimiWriter
- import com.sun.jimi.core.util.ColorReducer;
- import java.awt.*;
- public class ColorReduceTest
- {
- static Image image = null;
- public static void main(String[] args) throws JimiException
- {
- if (args.length < 3) {
- System.err.println("Usage: ColorReduceWithJimi <source></source> <dest></dest> <# colors>");
- System.exit(1);
- }
- image = Jimi.getImage(args[0]);//装载图片
- image = reduceColors(image, Integer.parseInt(args[2]), true);//核心处理
- Jimi.putImage(image, args[1]);//保存图片
- System.exit(0);
- }
- public static Image reduceColors(Image image, int colors, boolean dither)
- {
- ColorReducer reducer = new ColorReducer(colors, dither);//dither是慌乱,颤抖的意思
- Image img = null;
- try {
- img = reducer.getColorReducedImage(image);
- }
- catch (JimiException e) {
- System.out.println("Error color reducing/dithering");
- }
- return img;
- }
- }
ColorReducer 方法的介绍
2个构造方法
ColorReducer
public ColorReducer(int maxColors)Creates a ColorReducer to perform color reduction on an Image without any dithering.
Parameters:
maxColors - the maximum number of colors in the reduced image
--------------------------------------------------------------------------------
ColorReducer
public ColorReducer(int maxColors,
boolean dither)Creates a ColorReducer to perform color reduction on an Image.
Parameters:
maxColors - the maximum number of colors in the reduced image
dither - true if the image should be dithered to create smoother results
其他方法
getColorReducedImageProducer
public java.awt.image.ImageProducer getColorReducedImageProducer(java.awt.image.ImageProducer producer)
throws JimiException
Perform color reduction.
Parameters:
producer - the ImageProducer to draw image data from
--------------------------------------------------------------------------------
getColorReducedImageProducer
public java.awt.image.ImageProducer getColorReducedImageProducer(java.awt.Image image)
throws JimiException
Perform color reduction.
Parameters:
image - the Image to draw image data from
-------------------------------------------------------------------------------
getColorReducedImage
public java.awt.Image getColorReducedImage(java.awt.image.ImageProducer producer)
throws JimiException
Perform color reduction.
Parameters:
producer - the ImageProducer to draw image data from
--------------------------------------------------------------------------------
getColorReducedImage
public java.awt.Image getColorReducedImage(java.awt.Image image)
throws JimiException
Perform color reduction.
Parameters:
image - the Image to draw image data from
--------------------------------------------------------------------------------
doColorReduction
protected JimiRasterImage doColorReduction(java.awt.image.ImageProducer producer)
throws JimiException
#完#
---------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------
二、
把gif图片处理成png
1.准备图片
2.编写代码
- import com.sun.jimi.core.Jimi;
- import com.sun.jimi.core.JimiException;
- import com.sun.jimi.core.JimiWriter;
- import com.sun.jimi.core.options.PNGOptions;//注意这里,转成其他格式也可以
- import java.awt.image.ImageProducer;
- /**
- * Simple class for saving PNG files with or without compression
- * as a demonstration of format-specific option usage.
- */
- public class CustomOption
- {
- public static void main(String[] args)
- {
- if (args.length < 3) {
- System.err.println("Convert a file to PNG with compression on or off.");
- System.err.println("Usage: CustomOption <source></source> <dest></dest> ");
- System.exit(1);
- }
- String source = args[0];
- String dest = args[1];
- String compression = args[2];//压缩情况
- // only handle PNG files
- // 如果存为非png的格式,则自动加png格式结尾
- if (!dest.endsWith("png")) {
- dest += ".png";
- System.out.println("Overriding to PNG, output file: " + dest);
- }
- try {
- PNGOptions options = new PNGOptions();
- if (compression.equals("max")) { //对压缩情况处理
- options.setCompressionType(PNGOptions.COMPRESSION_MAX);
- }
- else if (compression.equals("none")) {
- options.setCompressionType(PNGOptions.COMPRESSION_NONE);
- }
- else {
- options.setCompressionType(PNGOptions.COMPRESSION_DEFAULT);
- }
- ImageProducer image = Jimi.getImageProducer(args[0]); //Get an ImageProducer for an image.
- JimiWriter writer = Jimi.createJimiWriter(dest); // Create a JimiWriter to control encoding of an image writer.setSource(image); //Set the source image to be written.
- writer.setOptions(options); //Set the options to use for encoding.
- writer.putImage(dest); //Write the source to a file.
- }
- catch (JimiException je) {
- System.err.println("Error: " + je);
- }
- }
- }
经过max压缩,文件缩小了些,清晰度却肉眼没有感觉到变化
更多说明请看api
=============================================================================================================================================