`
kong6001
  • 浏览: 142163 次
  • 性别: Icon_minigender_1
  • 来自: 广东广州
社区版块
存档分类
最新评论

压缩图片分辨率

阅读更多
public class CompressImage {
	private static final Log log = LogFactory.getLog(CompressImage.class);

	private int destWidth;// 压缩后的长
	private int destHeight;// 压缩后的高

	/**
	 * 指定压缩后的长度,按比例计算出压缩后的高度
	 * 
	 * @param width
	 */
	public CompressImage(int width) {
		this.destWidth = width;

	}

	/**
	 * 指定压缩后的长度和高度
	 * 
	 * @param width
	 * @param height
	 */
	public CompressImage(int width, int height) {
		this.destHeight = height;
		this.destWidth = width;

	}

	// 根据长度计算出高度
	private int getHeight(int width, int height)  	{

		if (width > destWidth) {
			float scale;// 计算原图比例
			scale = (float) width / (float) destWidth;
			float hh = height / scale;
			return (int) hh;
		} else {
			this.destWidth = width;
			return height;
		}

	}

	/**
	 * 压缩图片分辨率
	 * 
	 * @param srcPath
	 * @param destPath
	 * @throws Exception
	 */
	public void compress(String srcPath, String destPath) {
		try {
			File _file = new File(srcPath);
			log.debug("SrcImagePath:" + _file.getAbsolutePath());
			Image src = javax.imageio.ImageIO.read(_file);
			int wideth = src.getWidth(null);// 获得图片长

			int height = src.getHeight(null);// 获得图片高度
			log.debug("StrImage:" + wideth + "*" + height);
			int htagHeight = this.destHeight == 0 ? this.getHeight(wideth,
					height) : this.destHeight;
			BufferedImage tag = new BufferedImage(this.destWidth, htagHeight,
					BufferedImage.TYPE_INT_RGB);
			Graphics g = tag.getGraphics();
			g.drawImage(src, 0, 0, this.destWidth, htagHeight, null);
			// if (t != null) {// 在底部图片上写文字
			// g.setColor(new Color(242, 242, 242));
			// g.fillRect(this.getWideth() - 120, htagHeight - 18, 120, 18);
			// g.setColor(new Color(180, 180, 180));
			// g.drawRect(this.getWideth() - 120, htagHeight - 18, 119, 17);
			// g.setColor(new Color(255, 102, 0));
			// g.drawString(t, this.getWideth() - 100, htagHeight - 5);
			// }
			log.debug("DestImagePath:" + _file.getAbsolutePath());
			log.debug("DestImage:" + tag.getWidth() + "*" + tag.getHeight());
			FileOutputStream out = new FileOutputStream(destPath);
			JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
			encoder.encode(tag);
			out.close();

		} catch (Exception e) {
			log.error("Compress Image [" + srcPath + "] error!!\r\n" + e);

		}
	}

}

 

分享到:
评论

相关推荐

    安卓联系拍照压缩图片分辨率

    在安卓平台上,拍照和压缩图片分辨率是一个常见的需求,特别是在存储空间有限或者网络传输速度有限的情况下。这个主题主要涉及安卓系统的相机API以及图像处理技术。在"安卓联系拍照压缩图片分辨率"这一话题中,我们...

    图片压缩C#代码(分辨率、图片质量)

    本文将深入探讨如何使用C#语言实现图片的压缩,主要关注分辨率的调整、图片质量的改变这两个关键因素,以及如何确保在压缩后仍能保持图像的可识别性。 首先,我们要了解图片压缩的基本原理。图片压缩分为有损压缩和...

    右键压缩图片分辨率大小PhotoResize

    我试过好几款压缩工具,感觉这款是最方便实用的,右键一键操作,真心快捷,强烈推荐。 Picture Resizer-修改图片大小、尺寸的软件,属于右键增强类工具,操作方法非常简单:双击运行它,点击界面上的“add to ...

    照片批量压缩修改分辨率程序

    在实际应用中,可能需要降低图片分辨率以适应网络展示,或者压缩图片大小以节省存储空间。程序的执行流程可能包括以下步骤: 1. 图片读取:程序首先读取用户指定的图片文件,将其加载到内存中。 2. 分辨率调整:...

    最好的图压缩软件,无损图片像素

    最好的图压缩软件,无损图片像素,最好的图压缩软件,无损图片像素,最好的图压缩软件,无损图片像素

    图片大小压缩(java尺寸、质量)

    通过java实现对图片按照尺寸、像素质量实现对图片的压缩处理,并可以对图片制定宽高或者等比压缩

    js前端压缩、缩放图片分辨率,无需服务器,支持移动端

    如题,这个东西超牛逼,前端压缩、缩放图片,还支持在手机上运行,使用起来也很简单: lrz(filePath, { width: 285, height: 164, done: function (results) { img.src = results.base64; } }); filePath支持...

    可按百分比,按分辨率批量压缩图片袖珍工具

    标题中的“可按百分比,按分辨率批量压缩图片袖珍工具”表明这是一款小巧而功能强大的软件,专门用于批量处理图像文件,以实现按比例或根据特定分辨率进行压缩。这样的工具在处理大量图片时非常实用,例如对于网页...

    C#改变图片分辨率

    图片分辨率是指图片的像素密度,通常以宽度和高度的像素数表示,例如1920x1080。改变图片分辨率可能会影响图片的显示效果和文件大小。 要实现这个功能,我们需要用到C#中的System.Drawing命名空间,它提供了处理...

    图像压缩算法JPEG源代码实现(C语言)

    JPEG(Joint Photographic Experts Group)是一种广泛应用于数字图像和照片的有损压缩标准,它基于离散余弦变换(DCT)和量化等技术来减少文件大小,同时保持可接受的图像质量。在这个项目中,我们关注的是用C/C++...

    图片分辨率修改批处理器

    在提供的压缩包“图片压缩缩放处理工具”中,很可能包含了这样一个批处理工具,能够帮助用户快速有效地调整图片分辨率和尺寸。使用这样的工具,用户不仅可以节省时间,还能确保处理后的图片满足特定的规格要求,从而...

    图片分辨率大小修改器免安装

    图片分辨率大小修改器是一款便捷的工具,主要用于调整图像文件的分辨率和尺寸,无需繁琐的安装过程,用户可以轻松实现对图片的优化处理。在数字图像领域,分辨率是衡量图像清晰度的重要指标,它通常由像素数量来定义...

    图片压缩,不改变宽高

    使用两中方法进行压缩,可以只改变图片大小,如,原图片100kb,压缩后变成40kb。并且不改变宽高。 一.使用ImageMagick进行压缩类-Aa.java 需要做以下配置: 1.将jmagick.dll加入jdk\bin目录中 2.将jmagick.dll加入到...

    VS2015 C++ MFC 等比缩小图片分辨率大小

    VS2015 C++ MFC 等比缩小图片分辨率大小 bool CtestCImageDlg::CreateSmallPic(CString& szOldFileName, CString& szNewFilName) { const double WIDTH = 5000; const double HEIGHT = 5000; CImage oldimg; ...

    delphi源码压缩图片bmp,jpg至480,640jpg

    在IT行业中,图像处理是一项非常重要的技术,尤其是在移动设备和网络应用中,高效地压缩图片以减少存储空间和传输成本是必要的。本话题主要聚焦于使用Delphi编程语言进行图片(BMP和JPG格式)的压缩,目标是将图片...

    C#快速获取JPG图片大小及英寸分辨率

    Console.WriteLine($"图片分辨率:{widthInches} x {heightInches} 英寸"); ``` 这里,我们假设屏幕的DPI(每英寸点数)为96,这是一个常见的标准值。通过将图像的分辨率转换为基于96 DPI的标准,我们可以得到英寸...

    批量处理修改jpg图片分辨率的工具

    这就是“批量处理修改jpg图片分辨率的工具”所解决的问题。这款工具专门用于批量调整jpg图像的分辨率,能够帮助用户高效地管理图片资源。 首先,我们要理解分辨率的概念。分辨率是衡量图片清晰度的一个关键指标,...

    PHP 按一定比例压缩图片,保持清晰度

    为了实现按比例压缩图片的同时保持清晰度,我们需要采用一些特殊的技术和策略。以下将详细介绍如何在PHP中实现这一目标。 1. 图片压缩原理: 图片压缩主要分为有损压缩和无损压缩两种。有损压缩(如JPEG)会丢失...

    Fastdfs与nginx进行压缩图片比率

    3. 压缩图片比率:涉及图片按需压缩,即根据客户端请求的特定尺寸比例返回压缩后的图片。 接下来,我们可以展开知识点: ### FastDFS知识点: - **分布式文件系统:**FastDFS专门针对大容量存储和高并发访问设计...

Global site tag (gtag.js) - Google Analytics