`
lyjilu
  • 浏览: 175555 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

图片缩放

    博客分类:
  • java
OS 
阅读更多
/**
	 * 通过传进来的二进制图片流,将图片缩放后返回,用于文件上传取得缩放图,然后存数据库
	 * 
	 * @param bt
	 *            原图二进制
	 * @param targetW
	 *            目标宽度
	 * @param targetH
	 *            目标长度
	 * @return 缩放后图片的二进制
	 * @throws IOException
	 *             流读写异常
	 */
	public static byte[] resize(byte[] bt, Integer targetW, Integer targetH)
			throws IOException {
		ByteArrayInputStream bai = new java.io.ByteArrayInputStream(bt);
		BufferedImage bimg = javax.imageio.ImageIO.read(bai);
		BufferedImage target = resize(bimg, targetW, targetH);
		ByteArrayOutputStream os = new ByteArrayOutputStream();
		JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(os);
		encoder.encode(target);
		byte[] arr = os.toByteArray();
		os.flush();
		os.close();
		bai.close();
		return arr;
	}

 昨天做的一个图片缩放,能够将上传的文件进行缩放后返回字节数组,然后存放数据库或其它操作。

 

public static BufferedImage resize(BufferedImage source, int targetW,
			int targetH) throws IOException {
		// targetW,targetH分别表示目标长和宽
		int type = source.getType();
		BufferedImage target = null;
		double sx = (double) targetW / source.getWidth();
		double sy = (double) targetH / source.getHeight();
		// 这里想实现在targetW,targetH范围内实现等比缩放。如果不需要等比缩放
		// 则将下面的if else语句注释即可
		if (sx > sy) {
			sx = sy;
			targetW = (int) (sx * source.getWidth());
		} else {
			sy = sx;
			targetH = (int) (sy * source.getHeight());
		}
		if (type == BufferedImage.TYPE_CUSTOM) {
			ColorModel cm = source.getColorModel();
			WritableRaster raster = cm.createCompatibleWritableRaster(targetW,
					targetH);
			boolean alphaPremultiplied = cm.isAlphaPremultiplied();
			target = new BufferedImage(cm, raster, alphaPremultiplied, null);
		} else
			target = new BufferedImage(targetW, targetH, type);
		Graphics2D g = target.createGraphics();

		g.setRenderingHint(RenderingHints.KEY_RENDERING,
				RenderingHints.VALUE_RENDER_QUALITY);
		g.drawRenderedImage(source, AffineTransform.getScaleInstance(sx, sy));
		g.dispose();
		return target;
	}

 

分享到:
评论

相关推荐

    PHP图片缩放水印类.zip

    2. **图片缩放**:类库提供了多种缩放模式,如: - **裁切缩放模式**:根据预设的宽高比例,裁剪原始图片以适应目标尺寸,保持原图的纵横比。 - **比例缩放模式**:按照指定的比例调整图片大小,保持原图的纵横比...

    js图片缩放效果制作鼠标滚动图片等比例缩放

    总结一下,"js图片缩放效果制作鼠标滚动图片等比例缩放"涉及到的技术点有: 1. JavaScript事件监听:监听鼠标的滚轮事件。 2. CSS3变换:使用`transform`属性进行等比例缩放。 3. 计算缩放比例:根据滚动的增量和...

    qt实现图片缩放

    在Qt框架中,图片缩放是一项常见的图像处理任务,它涉及到图形用户界面(GUI)的开发,特别是当我们要展示或操作图像时。Qt提供了一系列的类和方法来帮助开发者实现这个功能。以下将详细介绍如何使用Qt来实现图片的...

    Android-一个Android图片缩放查看控件支持手势

    这个名为"Android-一个Android图片缩放查看控件支持手势"的项目,旨在提供一个自定义的视图控件,它允许用户通过手势进行图片的放大、缩小以及平移操作,提升用户体验。下面我们将深入探讨这个控件的关键知识点和...

    Android SurfaceView 实现图片缩放 滑动

    在实现图片缩放和滑动时,我们需要利用这一点来确保流畅的用户体验。 1. **SurfaceView的创建与初始化**: 在布局文件中添加SurfaceView,并在Activity的onCreate()方法中找到并初始化它。设置SurfaceHolder的回调...

    MFC图片缩放实例

    在本文中,我们将深入探讨如何使用MFC(Microsoft Foundation Class Library)进行图片缩放操作,特别是在将图片缩放以适应背景上的应用场景。MFC是微软为Windows开发的应用程序提供的一套C++类库,它极大地简化了...

    图片缩放图片缩放

    在Authorware这个强大的多媒体创作工具中,图片缩放是一个常用的操作,它可以帮助用户根据需要调整图像的大小,适应不同的展示需求。以下将详细介绍如何在Authorware中进行图片缩放以及相关的知识点。 一、...

    matlab图片缩放代码.zip

    在图像处理领域,图片缩放是一项常见的操作,用于调整图像的尺寸以适应不同的显示或分析需求。本压缩包“matlab图片缩放代码.zip”提供了一组MATLAB代码,包括最近邻插值(singlelineal.m)、双线性插值(double.m)...

    页面中图片缩放拖动

    在网页设计中,图片缩放和拖动是增强用户体验的重要功能。用户可以通过这些交互操作来更细致地查看图片,尤其对于细节丰富的图像或者高分辨率的图片来说,这种功能显得尤为重要。下面将详细介绍如何实现“页面中图片...

    imageQ图片缩放拖拽jQuery小插件

    **imageQ图片缩放拖拽jQuery小插件详解** 在网页设计中,用户交互体验是至关重要的,而图片作为网页内容的重要组成部分,如何提供便捷、直观的操控方式以提升用户体验呢?`imageQ`就是这样一款基于jQuery的插件,它...

    jq图片缩放与拖动

    本实例"jq图片缩放与拖动"是基于jQuery实现的一个功能,允许用户对图片进行缩放和拖动操作,提高了网页的交互性和用户体验。 首先,我们来看"jq图片缩放与拖动"的核心技术点: 1. **jQuery选择器**:jQuery提供了...

    C# 图片缩放和移动程序

    在C#编程环境中,开发一个图片缩放和移动程序是一项常见的任务,特别是在图形用户界面(GUI)应用中。本程序是在.NET Framework 3.5环境下构建的,这意味着它利用了该框架提供的丰富的类库和功能。尽管如此,由于C#...

    图片缩放算法原理

    【图片缩放算法原理】 图片缩放是计算机图形学中常见的操作,用于调整图像的尺寸,使其适应不同的显示需求。图像缩放分为放大和缩小,通常涉及到像素级别的处理。这里我们将探讨一种常用的图像缩放算法——双线性内...

    android imageview 图片缩放

    本文将深入探讨如何在Android中实现ImageView的图片缩放功能,同时结合异步加载和Activity的半透明效果,提升用户体验。 首先,我们要理解Android中ImageView的基本用法。ImageView可以设置为固定大小或根据图片...

    C# winfrom 触摸屏图片缩放 .rar

    在本文中,我们将深入探讨如何使用C# Winform开发一个支持触摸屏的图片缩放应用程序。这个项目的核心技术包括RegisterTouchWindow的使用、控件的子类化以及自定义消息处理,以及通过触摸手势实现图片的等比例缩放。...

    c#图片缩放的简单方法

    C#图片缩放,使用Bitmap的方式,可以将图片按比例缩放,也可以设定固定大小

    Qt 图片缩放,支持滚轮和按键缩放

    在Qt框架下,图片缩放是一项常见的功能,尤其在图形用户界面(GUI)应用中,如图像查看器或编辑器。本项目利用Qt 5.3.2版本实现了这一功能,支持通过滚轮和按键进行图片的放大与缩小,同时具备复位和切换图片的能力...

    jQuery图片缩放例子代码

    下面我们将深入探讨jQuery图片缩放的原理、实现方式以及相关知识点。 首先,我们需要理解jQuery的基本用法。jQuery通过$符号作为函数调用,用于选择DOM元素。例如,`$('img')`会选择所有的图片元素。选择器可以是ID...

    关于图片缩放的若干问题的解决

    在IT领域,图片缩放是一项常见的图像处理任务,它涉及到图像的分辨率调整、尺寸变换以及保持图像质量等关键因素。本文将深入探讨关于图片缩放的若干问题及其解决方案。 首先,我们要理解图片缩放的基本原理。图片是...

    flex 图片缩放移动组件

    本文将详细讲解如何使用Flex创建一个图片缩放移动组件,以及涉及的相关知识点。 首先,我们要理解Flex中的核心组件体系,它包括容器(Container)、基本组件(Basic Components)和自定义组件(Custom Components)...

Global site tag (gtag.js) - Google Analytics