web中获取input file中的完整地址
if (window.navigator.userAgent.indexOf("MSIE") >= 1) {
obj.select();//obj为file的js对象
return document.selection.createRange().text;
}
firefox中obj.files.item(0).getAsDataURL();获取完整路径。
下面为后台java对图片进行缩放及类型判定,其中gif图片缩放需用到gif4j。
public class GrapicDemo {
public void resizeImage(String path){
File file = new File(path);
if("gif".equals(getGraphicType(path))){
try {
GifImage gif = GifDecoder.decode(file);
File des = new File("F:\\WORKSPACE4\\Demo\\WebRoot\\img\\jiao2.gif");//目标
GifImage newImage = GifTransformer.resize(gif, 100, 100, true);
GifEncoder.encode(newImage, des);
} catch (IOException e) {
e.printStackTrace();
}
}else{
try {
Image image = ImageIO.read(file);
BufferedImage image2 = new BufferedImage(320, image.getHeight(null)*320/image.getWidth(null), BufferedImage.TYPE_INT_RGB);
image2.getGraphics().drawImage(image.getScaledInstance(320, image.getHeight(null)*320/image.getWidth(null), Image.SCALE_SMOOTH), 0, 0, null);
FileOutputStream fos = new FileOutputStream("F:\\WORKSPACE4\\Demo\\WebRoot\\img\\flower2.png");
JPEGImageEncoder decoder = JPEGCodec.createJPEGEncoder(fos);
decoder.encode(image2);
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public String getGraphicType(String path){
try {
FileInputStream fis = new FileInputStream(path);
BufferedInputStream bis = new BufferedInputStream(fis);
int len = fis.available();
byte[] b =new byte[len];
bis.read(b, 0, len);
ByteArrayInputStream bab = new ByteArrayInputStream(b);
MemoryCacheImageInputStream mis = new MemoryCacheImageInputStream(bab);
Iterator i = ImageIO.getImageReaders(mis);
while(i.hasNext()){
ImageReader ir = (ImageReader) i.next();
if(ir instanceof GIFImageReader){
return "gif";
}else if(ir instanceof PNGImageReader){
return "png";
}else if(ir instanceof BMPImageReader){
return "bmp";
}else if(ir instanceof JPEGImageReader){
return "jpg";
}
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args){
GrapicDemo gd = new GrapicDemo();
gd.resizeImage("F:\\WORKSPACE4\\Demo\\WebRoot\\img\\jiao.gif");
}
}
引用:
解决IE中img.onload失效的方法
最近在做web开发,其中有一个需求:利用Javascript获取要加载的图片的尺寸,所以很自然的,我就想到了img的onload方法,在firefox下开发完成后,我到IE下调试,发现img的onload事件很多情况下都不被调用。
我最初的代码如下:
var img = new Image;
img.src = "test.gif";
img.onload = function(){
alert ( img.width );
};
这段代码看着没什么问题,但是为什么onload没有被IE调用呢?因为IE会缓存图片,第2次加载的图片,不是从服务器上传过来的,而是从缓冲区里加载的。是不是从缓冲区里加载的图片就不触发onload事件呢?我于是我测试了以下代码,成功了~
var img = new Image;
img.onload = function(){
alert ( img.width );
};
img.src = "test.gif";
我把onload写到前面去,先告诉浏览器如何处理这张图片,再指定这张图片的源,这样就正常了。所以,不是IE没有触发onload事件,而是因为加载缓冲区的速度太快,以至于没有运行到img.onload的时候,onload事件已经触发了。这让我想到了Ajax,我们在写xmlhttp的时候,都是先指定onstatechange的回调函数,然后再send数据的,道理是一样的。
分享到:
相关推荐
java 处理图片大小等比例缩放;图片裁剪;支持图片压缩不失真;支持图片添加水印;支持动态图的处理;支持自定义图片大小的转换 等 压缩包中内附使用说明
java图片缩放 java缩略图 缩略图 java图片处理
按比例缩放图片
java处理的图片,缩放,比例处理,压缩等java处理的图片,缩放,比例处理,压缩等
应为图片太大,所以按照一定比例缩放
高清缩放图像、切割图像、图像类型转换、彩色转黑白、文字水印、图片水印等 功能非常强大,并且很清晰,请给好评:)
NULL 博文链接:https://seaie.iteye.com/blog/1678015
java gif图片缩放代码及帮助文档,很好用的。一看就懂
用JAVA获取视频文件中的帧图片并等比缩放,java 获取视频中图片 缩放比例 javacv
采用双线性算法实现图片的缩放,今天,经过多次实现终于完成了图片的缩放,来给大家分享一下
网上流传的Java处理图片的代码,虽然可对图片进行简单处理,但效果并不理想。 为了解决这个问题,我也是在网上找了好久,看了很多资料,功夫不负有心人...支持的处理操作:图片缩放,区域裁剪,水印,旋转,保持比例。
这个小项目主要是利用java Thumbnaillator类库实现对图片的缩放功能,代码参考自慕课网Java实现图片等比例缩略图教学视频,目的为需求源码的小伙伴提供一个参考,如有问题大家再一起交流(附:资源积分是必选项,...
java实现的图片处理,主要功能图片缩放,按比例缩放,截剪
文件内含java 处理图片大小等比例缩放,指定颜色改变颜色。根据不同图片设置阴影图片。
用java如何把图片处理到指定大小 切割程序如下: public void cut(String srcImageFile,FileOutputStream fileout, int w, int h, int x1, int y1, int sw, int sh) { // TODO Auto-generated method stub try ...
Android下载图片和缩放图片的实现 适用于减少内存的使用
实现图片的压缩 1.按照固定的比例缩放图片 2.以宽度为基准等比例放缩图片 3.以高度为基准,等比例缩放图片 4.按照最大高度限制,生成最大的等比例缩略图
完整的例子,对YUV图片进行缩放,代码里有几个缩放方法
上传图片的同时可以生成两个小的缩略图,一个为100X100,一个为300X300。
本软件需要自己安装jdk哦!软件可以将图片缩小,还可以减少图片的占用空间!后续的版本会陆续上线的!