锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国模吧精品人体gogo,首播影院在线观看免费观看电视,国产免费观看久久http://www.aygfsteel.com/anlyhz/category/28753.htmlzh-cnFri, 22 Feb 2008 07:42:52 GMTFri, 22 Feb 2008 07:42:52 GMT60- java 鍥劇墖澶勭悊http://www.aygfsteel.com/anlyhz/archive/2008/02/21/181048.htmlanlyanlyThu, 21 Feb 2008 06:02:00 GMThttp://www.aygfsteel.com/anlyhz/archive/2008/02/21/181048.htmlhttp://www.aygfsteel.com/anlyhz/comments/181048.htmlhttp://www.aygfsteel.com/anlyhz/archive/2008/02/21/181048.html#Feedback0http://www.aygfsteel.com/anlyhz/comments/commentRss/181048.htmlhttp://www.aygfsteel.com/anlyhz/services/trackbacks/181048.html//http://www.fmsware.com/stuff/gif.zip
//鍏堜笅紼嬪簭涓渶瑕佺敤鍒扮殑鍖?br />
//class GifDD
import image.AnimatedGifEncoder;
import image.GifDecoder;
import java.awt.image.BufferedImage;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.imageio.ImageIO;
public class GifDD {
public static String[] delay; // 寤惰繜鏃墮棿
public Map<String, String> map = new HashMap<String, String>();
/**
* 鎶奼if鍥劇墖鎸夊撫鎷嗗垎鎴恓pg鍥劇墖
*
* @param gifName
* String 鍘熷浘璺緞
*
* @return BufferedImage[] 榪斿洖鐢熸垚鐨勬枃浠舵祦
*/
private BufferedImage[] splitGif(String gifName) {
try {
GifDecoder decoder = new GifDecoder();
decoder.read(gifName);
// decoder.read(BufferedInputStream);
// decoder.read(InputStream);
int n = decoder.getFrameCount(); // 寰楀埌frame鐨勪釜鏁?br />
BufferedImage[] subPic = new BufferedImage[n]; //
delay = new String[n]; // 瀛樺偍寤惰繜鏃墮棿
for (int i = 0; i < n; i++) {
BufferedImage frame = decoder.getFrame(i); // 寰楀埌甯?br />
delay[i] = decoder.getDelay(i) + ""; // 寰楀埌寤惰繜鏃墮棿
// 鐢熸垚灝忕殑JPG鏂囦歡
subPic[i] = frame;
}
return subPic;
} catch (Exception e) {
System.out.println("splitGif Failed!");
e.printStackTrace();
return null;
}
}
/**
* 鎶婂寮爅pg鍥劇墖鍚堟垚涓寮?br />
*
* @param bi
* BufferedImage[] 澶氫釜鏂囦歡嫻佹枃浠跺悕
* @param newPic
* String 鐢熸垚鐨刧if鏂囦歡鍚?鍖呭惈璺緞
* @param _delay
* String[] 鎾斁鐨勬椂闂?br />
*/
private void jpgToGif(BufferedImage bi[], String newPic, String _delay[]) {
try {
AnimatedGifEncoder e = new AnimatedGifEncoder(); // 緗戜笂鍙互鎵懼埌姝ょ被
e.setRepeat(0);
e.start(newPic);
for (int i = 0; i < bi.length; i++) {
// src[i] = ImageIO.read(new File(pic[i])); // 璇誨叆闇瑕佹挱鏀劇殑jpg鏂囦歡
// e.addFrame(src[i]); // 娣誨姞鍒板撫涓?br />
e.setDelay(new Integer(_delay[i]));// 璁劇疆鎾斁鐨勫歡榪熸椂闂?br />
e.addFrame(bi[i]);// 娣誨姞鍒板撫涓?br />
}
e.finish();
} catch (Exception e) {
System.out.println("jpgToGif Failed:");
e.printStackTrace();
}
}
// 澶勭悊鍥劇墖
/**
* 鎶婂寮爅pg鍥劇墖榪涜澶勭悊
*
* @param bi
* BufferedImage[] 澶氫釜鏂囦歡嫻佹枃浠跺悕
* @param width
* String 緙╂斁鐨勫搴?br />
* @param height
* String 緙╂斁鐨勯珮搴?br />
* @return BufferedImage[] 榪斿洖鐢熸垚鐨勬枃浠舵祦
*/
public BufferedImage[] changeImage(BufferedImage[] bi, double width,
double height) {
BufferedImage src = null;
// 瀛榳idth , height
int saveWidth = 0;
int saveHeight = 0;
BufferedImage[] backBi = new BufferedImage[bi.length];
for (int i = 0; i < bi.length; i++) {
double __width = new Double(bi[i].getWidth() + ""); // src width
double __height = new Double(bi[i].getHeight() + ""); // src
// height
if (bi[i].getHeight() <= width && bi[i].getWidth() <= height) {
saveWidth = new Double(width).intValue();
saveHeight = new Double(height).intValue();
}
else if ((width / height) >= (__width / __height)) {
saveWidth = new Double(__width / __height * height).intValue();
saveHeight = new Double(height).intValue();
} else {
saveHeight = new Double((__height / __width) * width)
.intValue();
saveWidth = new Double(width).intValue();
}
BufferedImage tag = new BufferedImage(saveWidth, saveHeight,
BufferedImage.TYPE_INT_RGB);
// 緇樺埗緙╁皬鍚庣殑鍥?br />
tag.getGraphics().drawImage(bi[i], 0, 0, saveWidth, saveHeight,
null); //
backBi[i] = tag;
}
// 緇樺埗緙╁皬鍚庣殑鍥?br />
return backBi;
}
/**
* 鎶婂寮爅pg鍥劇墖榪涜瀛樼洏
*
* @param bi
* BufferedImage[] 澶氫釜鏂囦歡嫻佹枃浠跺悕
* @param savePath
* String 瀛樻斁鐨勮礬寰?br />
*
*/
public void saveImage(BufferedImage[] bi, String savePath) {
FileOutputStream out = null;
for (int i = 0; i < bi.length; i++) {
String path = savePath + "\\" + i + ".jpg";
try {
out = new FileOutputStream(path);
ImageIO.write(bi[i], "jpeg", out);// 瀛樼洏
// JPEGImageEncoder encoder =
// JPEGCodec.createJPEGEncoder(savePath);
//
// encoder.encode(bi[i]);
out.flush();
out.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) {
BufferedImage[] bi = new GifDD().splitGif("e:\\a.gif");
new GifDD().saveImage(bi, "e:\\");
BufferedImage[] backbi = new GifDD().changeImage(bi, 32, 32);
new GifDD().saveImage(backbi, "e:\\images");
new GifDD().jpgToGif(backbi, "e:\\_a.gif", delay);
}
}

]]>
主站蜘蛛池模板:
东山县|
习水县|
博乐市|
承德县|
定陶县|
雷州市|
蒙阴县|
六枝特区|
吴旗县|
洪江市|
包头市|
大冶市|
安达市|
罗城|
达孜县|
乐业县|
黎城县|
江川县|
广德县|
普格县|
广宗县|
永丰县|
巧家县|
盘锦市|
永顺县|
合阳县|
收藏|
廊坊市|
鄂尔多斯市|
苏尼特右旗|
丽江市|
孝昌县|
罗甸县|
绥阳县|
漳平市|
西青区|
彭水|
凤阳县|
抚远县|
鄂伦春自治旗|
英超|