`
edwin492
  • 浏览: 115907 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java比例缩放图片

    博客分类:
  • J2SE
阅读更多

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");
	}
}

 引用:

解决IEimg.onload失效的方法

    最近在做web开发,其中有一个需求:利用Javascript获取要加载的图片的尺寸,所以很自然的,我就想到了imgonload方法,在firefox下开发完成后,我到IE下调试,发现imgonload事件很多情况下都不被调用。

我最初的代码如下:

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处理图片大小等比例缩放,自定义修改图片大小,截取,水印

    1. **等比例缩放图片**: 在Java中,我们可以使用`java.awt.image.BufferedImage`类来处理图像。为了等比例缩放图片,我们需要获取原始图片的宽高比,然后根据目标尺寸计算出新的宽高。关键代码可能如下: ```java...

    java图片缩放 java缩略图 缩略图 java图片处理

    java图片缩放 java缩略图 缩略图 java图片处理

    图片按比例缩放

    "图片按比例缩放"就是其中一个核心操作,它涉及到图像处理的基本原理和技术。在本篇文章中,我们将深入探讨如何进行图片按比例缩放,以及这一过程中的相关知识点。 首先,我们来理解什么是“按比例缩放”。比例缩放...

    Java图像缩放 图片缩放

    在Java编程领域,图片处理是一项常见的任务,其中图像缩放是尤为重要的操作。当我们需要调整图片大小,以适应不同的应用场景,如网页、移动设备或打印等,就需要进行图像缩放。本文将深入探讨Java中实现图像缩放的...

    按比例缩放图片

    ### 按比例缩放图片的关键技术点与实现方法 #### 一、概念与应用场景 在数字图像处理领域,按比例缩放图片是一项常见的需求。它不仅被广泛应用于Web开发中,例如为了优化网页加载速度而对上传的图片进行尺寸调整;...

    java从图片缩放

    缩放图像通常有两种方式:按比例缩放(等比例缩放)和指定新的尺寸(非等比例缩放)。等比例缩放可以保持原始图像的比例,避免拉伸或压缩图像。非等比例缩放可能会改变图像的宽高比。 - **等比例缩放**:可以使用...

    java图片缩放处理

    在Java编程语言中,处理图片是一项常见的任务,包括图片的缩放、比例调整以及压缩等操作。这些功能在各种应用场景中都有所体现,比如网页设计、图像处理软件、移动应用等。下面我们将深入探讨Java中如何进行图片的...

    批量缩放图片的Java实现

    下面,我们将深入探讨如何使用Java来实现批量缩放图片的功能。 首先,Java提供了强大的Java Advanced Imaging (JAI)库和Java 2D API,它们为处理图像提供了丰富的功能,包括缩放、旋转、裁剪等。在这个场景下,我们...

    图片按照等比例缩放

    应为图片太大,所以按照一定比例缩放

    java高清图片缩放、压缩、切割、水印源码例子

    高清缩放图像、切割图像、图像类型转换、彩色转黑白、文字水印、图片水印等 功能非常强大,并且很清晰,请给好评:)

    java实现图片缩放

    以下是一个简单的示例,展示了如何使用`Convert`来缩放图片: ```java import net.sourceforge.imagemagick.ImageMagick; import net.sourceforge.imagemagick.MagickImage; public class ImageResizeExample { ...

    java裁剪、缩放图片工具类

    这个"java裁剪、缩放图片工具类"提供了这样的功能。它包含两个主要的组件:一个工具类(ImgUtils.java)和一个测试类(Test.java)。让我们深入探讨这两个类及其背后的图像处理原理。 首先,`ImgUtils.java`是核心...

    java 图片缩放类

    根据提供的文件信息,我们可以总结出以下关于“Java图片缩放类”的相关知识点: ### Java 图片缩放类概述 在Java开发中,处理图像时经常需要进行缩放操作以适应不同的显示需求或优化资源占用。Java 提供了多种库来...

    JAVA缩放图片.txt

    - 使用`drawImage`方法将原图按比例缩放后绘制到新的`BufferedImage`上。 - 使用`JPEGCodec`进行编码并保存为文件。 ###### 2.3.2 减小GIF图片的尺寸 ```java public static void reduceImgGif(String imgsrc, ...

    java gif图片缩放代码及帮助文档

    - **保持比例**:缩放时保持原始图片的比例,防止图像变形。 - **性能优化**:对于大量或大型GIF的处理,考虑使用多线程或异步处理以提高效率。 - **质量与体积**:缩放可能会影响图像质量,适当调整压缩级别可以...

    阿里巴巴 simpleimage 图片处理工具类 功能 等比例缩放 裁切 加水印 复合操作例子和jar包

    这款工具提供了丰富的功能,包括等比例缩放、裁切、添加水印以及复合操作等,极大地简化了开发者对图像进行后期处理的工作流程。接下来,我们将详细探讨这些功能及其使用方法。 一、等比例缩放 等比例缩放是图像...

    java利用双线性算法实现图片缩放

    采用双线性算法实现图片的缩放,今天,经过多次实现终于完成了图片的缩放,来给大家分享一下

    java代码保存宽高不变压缩图片(失真不大).docx

    4. **读取和缩放图片**:`ImageIO.read(file)`用于从给定路径读取图片,`img.getScaledInstance()`方法则根据新的宽度和高度比例缩放图片,使用`SCALE_SMOOTH`参数确保平滑的缩放效果。 5. **创建BufferedImage对象...

    ImageView 宽度设定,高度按比例缩放

    `scaleType`被设置为`fitCenter`,确保图片按比例缩放,并居中显示。 如果需要在运行时动态设置宽度和`scaleType`,可以通过Java代码实现: ```java ImageView imageView = findViewById(R.id.imageView); ...

Global site tag (gtag.js) - Google Analytics