import java.awt.image.BufferedImage;
import java.io.File;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.imageio.ImageIO;
import java.awt.image.AffineTransformOp;
import java.awt.geom.AffineTransform;
import java.awt.Image;
public class PictureZoom {
public Icon getFixedBoundIcon(String filePath, int height, int width)
throws Exception {
//缩放比例
double Ratio = 0.0;
File F = new File(filePath);
if (!F.isFile())
throw new Exception(F
+ " is not image file error in getFixedBoundIcon!");
Icon ret = new ImageIcon(filePath);
BufferedImage Bi = ImageIO.read(F);
//当原始比例比目标比例大的时候执行
if ((Bi.getHeight() > height) || (Bi.getWidth() > width)) {
//取长度和宽度中较大的为准,确定缩放比例
if (Bi.getHeight() > Bi.getWidth()) {
Ratio = (new Integer(height)).doubleValue() / Bi.getHeight();
} else {
Ratio = (new Integer(width)).doubleValue() / Bi.getWidth();
}
int lastLength = filePath.lastIndexOf(".");
String subFilePath = filePath.substring(0, lastLength);
String fileType = filePath.substring(lastLength);
File zoomFile = new File(subFilePath
+ fileType);
Image Itemp = Bi.getScaledInstance(width, height, Bi.SCALE_SMOOTH);
AffineTransformOp op = new AffineTransformOp(AffineTransform
.getScaleInstance(Ratio, Ratio), null);
Itemp = op.filter(Bi, null);
try {
ImageIO.write((BufferedImage) Itemp, "jpg", zoomFile);
ret = new ImageIcon(zoomFile.getPath());
} catch (Exception ex) {
System.out.println("######## here error : " + ex);
}
}
return ret;
}
}
分享到:
相关推荐
本DEMO主要展示了如何利用双指缩放和双击操作来实现图片的放大与缩小,提供了一个直观且易用的交互体验。以下将详细解释这个DEMO涉及的技术点。 首先,我们要理解双指缩放(Pinch Zoom)的概念。双指缩放是基于多点...
"移动端点击放大、缩放图片,微信端点击放大图片"这个主题聚焦于如何在手机和平板等移动设备上,特别是在微信环境中,实现图片的点击放大及手势缩放功能。下面将详细介绍这一技术的实现方式和相关知识点。 首先,...
"手机js手势放大缩放图片插件"就是这样一个工具,它专为移动设备设计,旨在提升用户体验,让用户能够通过简单的触摸手势来放大和缩小网页中的图片。这篇文章将深入探讨这种插件的工作原理、实现方式以及其在实际开发...
标题中的“PB按比例缩放图片.rar”表明这是一个关于PowerBuilder(简称PB)的应用示例,主要用于图片的按比例缩放。在编程中,尤其是在GUI应用程序开发中,图像的缩放是一个常见的需求,用于适应不同的屏幕尺寸或者...
照片查看器的核心功能之一就是其缩放图片的能力,这一特性对于查看细节、调整布局或者简单地欣赏图片都极其重要。在本篇文章中,我们将深入探讨“照片查看器缩放图片功能”,并详细介绍如何使用这项功能以及它背后的...
"js按比例缩放图片,不变形,不失真"是一个常见的需求,特别是在用户上传图片或者在页面中显示不同尺寸的图片时。传统的做法是直接设定图片的高度或宽度,但这往往会导致图片比例失衡,产生变形和失真的现象。本篇...
综上所述,实现“双指捏合放大缩小图片”涉及了多点触控、手势识别器、UIImageView的交互以及图片缩放的逻辑处理。通过理解这些知识点,开发者可以创建出具有类似功能的应用,提供更优秀的用户体验。
总之,"Unity3d UGUI以鼠标位置点为中心缩放图片项目源码"是一个实用的示例,展示了如何利用Unity3d的UGUI系统结合鼠标交互来实现图片的动态缩放功能。通过深入理解UGUI的工作原理和事件处理机制,开发者可以进一步...
缩放图片的工具和方法多种多样,其中最常用的是使用图像编辑软件,例如Adobe Photoshop、GIMP或在线工具。这些工具通常提供“自由变换”功能,允许用户输入特定的缩放比例,或者通过拖动角落的控制点来等比例调整...
3. **像素组缩放**:为了实现无损缩放,易语言提供了`像素组_缩放图片_快速`和`像素组_缩放图片_无损`两个函数。前者可能牺牲一些质量来换取速度,而后者则会确保在任何情况下都能保持图像质量。无损缩放通常采用双...
为了防止图片过度缩放或缩小,通常需要设定缩放范围。可以设置最小缩放比例(min-scale)和最大缩放比例(max-scale),并在处理`pinch`事件时进行检查和限制。 7. **优化用户体验**: 为了提供更好的交互体验,...
缩放图片可以使用相同的Bitmap和Graphics类,但这次我们需要调整DrawImage方法中的参数来控制缩放比例。以下是一个缩放图片的示例: ```csharp // 定义缩放后的尺寸 int newWidth = 800; int newHeight = 600; // ...
你的图片地址.jpg" alt="可缩放图片"> ``` 接下来,我们需要编写JavaScript代码来监听鼠标的滚动事件。在JavaScript中,我们可以使用`addEventListener`方法来绑定事件处理函数。对于滚动事件,我们需要监听`wheel`...
标题提到的"易语言缩放图片源码(指定宽度高度)"是关于使用易语言来调整图像尺寸的代码实现,这在很多应用场景中都非常实用,如网页设计、图形用户界面(GUI)开发等。 易语言中的图像处理通常依赖于特定的库或...
C# 通过鼠标实现放大图片和移动图片,内附有源码和exe,实现鼠标滚轮放大和图片平移
在这个主题中,我们将深入探讨如何利用MFC进行图片的放大和缩小操作。 首先,理解MFC中的图像处理基础是非常重要的。MFC提供了CImage类,它封装了GDI+(Graphics Device Interface Plus)的功能,使得开发者能够...
标题和描述提到的"仿微信放大缩小图片,图片预览功能",正是Photoswipe的一个核心特性,它可以为用户提供与微信图片浏览相似的交互体验。 首先,Photoswipe提供了丰富的API和自定义选项,开发者可以根据项目需求...
总的来说,理解和掌握在.NET中处理图像的技巧,特别是按比例缩放图片,对于开发涉及图像上传的应用至关重要。这不仅可以节省存储空间,还能有效避免因图片尺寸过大导致的页面加载慢等问题。通过不断学习和实践,我们...
3. **双击缩放**:双击缩放是PhotoView的另一项特色功能,允许用户通过快速连续点击两次来实现图片的放大或缩小。这一功能通常用于快速切换图片的预览和全屏模式,提高了用户操作的便捷性。 4. **图片滑动**:...
该方法会读取输入文件,根据指定的最大宽高比缩放图片,并将结果保存到输出文件。 现在我们引入DWR,它允许前端JavaScript与后端Java代码进行直接通信,无需页面刷新。首先,在服务器端,你需要创建一个DWR可访问的...