转载 java,gif,合成,拆分,jpg,图片生成
这几天一直在做图片处理,其中遇到了一些问题,在网上也找到了解决办法(虽然不是最佳的),在这里还是作个记录吧。
1 多张jpg图合成gif动画
/**
* 把多张jpg图片合成一张
* @param pic String[] 多个jpg文件名 包含路径
* @param newPic String 生成的gif文件名 包含路径
*/
private synchronized void jpgToGif(String pic[], String newPic) {
try {
AnimatedGifEncoder e = new AnimatedGifEncoder(); //网上可以找到此类
e.setRepeat(0);
e.start(newPic);
BufferedImage src[] = new BufferedImage[pic.length];
for (int i = 0; i < src.length; i++) {
e.setDelay(200); //设置播诺难映偈奔?/span>
src[i] = ImageIO.read(new File(pic[i])); // 读入需要播放的jpg文件
e.addFrame(src[i]); //添加到帧中
}
e.finish();
} catch (Exception e) {
System.out.println( "jpgToGif Failed:");
e.printStackTrace();
}
}
2 gif动画分解成多张jpg
/**
* 把gif图片按帧拆分成jpg图片
* @param gifName String 小gif图片(路径+名称)
* @param path String 生成小jpg图片的路径
* @return String[] 返回生成小jpg图片的名称
*/
private synchronized String[] splitGif(String gifName,String path) {
try {
GifDecoder decoder = new GifDecoder();
decoder.read(gifName);
int n = decoder.getFrameCount(); //得到frame的个数
String[] subPic = new String[n];
String tag = this.getTag();
for (int i = 0; i < n; i++) {
BufferedImage frame = decoder.getFrame(i); //得到帧
//int delay = decoder.getDelay(i); //得到延迟时间
//生成小的JPG文件
subPic[i] = path + String.value(i)+ ".jpg";
FileOutputSt
相关文档:
以前用过几次这个东东,但每次都重新查询一次。本文原始出处是这里 。
-----------------------------------------------------------
Keytool 是一个Java 数据证书的管理工具 ,Keytool 将密钥(key)和证书(certificates)存在一个称为keystore的文件中在k ......
最后在研究GWT,需要用到.net 的webservice,网上搜了点代码,基本上问题多多.
Java要调用.net的webservice是需要一个axis的包的. 需要下载,然后引用.
引用的时候,需要注意一些小问题.
Java 端
public String ServiceLogon(String user, String pwd) throws ServiceException
{ &nb ......
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。
如果使用了反向代理软件,将http://192.168.1.110:2046/ 的URL反向代理为
http://www.bt285.cn /
的URL时,用reques ......
Java NIO API详解
在JDK 1.4以前,Java的IO操作集中在java.io这个包中,是基于流的同步(blocking)API。对于大多数应用来说,这样的API使用很方便,然而,一些对性能要求较高的应用,尤其是服务端应用,往往需要一个更为有效的方式来处理IO。从JDK 1.4起,NIO API作为一个基于缓冲区,并能提供异步(non-blocking)IO ......
先创建一个存储过程
create or replace function addvalue(value1 in number, value2 in number) return number is
result number;
begin
result:=value1+value2;
return(result);
end ;
下面是java调用
Connection conn = JDBCUtils.getConnection();
CallableStatement cs = conn.prepareCall("{? = call addval ......