`
- 浏览:
49758 次
- 性别:
- 来自:
福州
-
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
import java.awt.image.WritableRaster;
import java.io.File;
import java.io.FileNotFoundException;
import javax.imageio.ImageIO;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/** *//**
* @author zsy
*
*/
public class ZoomImage ...{
private static final Log log = LogFactory.getLog(ZoomImage.class);
public static String fileSeparator = System.getProperty("file.separator");
/** *//**
*
* @param filePath(E:\cfimg\userImg\NBCANH5PIOWX\9GZJO8QN1QWX.jpg)
* @param outPutDir(E:\cfimg\userImg\NBCANH5PIOWX\9GZJO8QN1QWX-60-60.jpg)
* @param height
* @param width
* @param replace 是否覆盖已有文件
* @return 生成文件名
* @throws Exception
* @throws FileNotFoundException
*/
public static void zoomImage(String filePath, String outPutFile,
int width, int height, boolean replace)
throws Exception, FileNotFoundException ...{
File inPutFile = new File(filePath);
File outPut = new File(outPutFile);
zoomImage(inPutFile, outPut, width, height, replace);
}
public static void zoomImage(File inPutFile, File outPutFile,
int width, int height, boolean replace)
throws Exception, FileNotFoundException ...{
if (!inPutFile.isFile()) ...{
log.error("文件不存在:" + inPutFile);
throw new FileNotFoundException("文件不存在:" + inPutFile);
}
if (!outPutFile.exists() || replace) ...{
zoomImage(inPutFile, outPutFile, height, width);
}
}
/** *//**
* 按指定大小缩放图片
* @param inPutFile
* @param outPutFile
* @param height
* @param width
* @throws Exception
*/
public static void zoomImage(File inPutFile, File outPutFile,
int width, int height) throws Exception ...{
BufferedImage source = ImageIO.read(inPutFile);
if (source == null) ...{
return;
}
double hx = (double)height / source.getHeight();
double wy = (double)width / source.getWidth();
if (hx < wy) ...{
wy = hx;
width = (int)(source.getWidth() * wy);
} else ...{
hx = wy;
height = (int)(source.getHeight() * hx);
}
int type = source.getType();
BufferedImage target = null;
if (type == BufferedImage.TYPE_CUSTOM) ...{ // handmade
ColorModel cm = source.getColorModel();
WritableRaster raster =
cm.createCompatibleWritableRaster(width, height);
boolean alphaPremultiplied = cm.isAlphaPremultiplied();
target = new BufferedImage(cm, raster, alphaPremultiplied, null);
} else ...{
target = new BufferedImage(width, height, type);
}
Graphics2D g = target.createGraphics();
// smoother than exlax:
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BICUBIC);
g.drawRenderedImage(source, AffineTransform.getScaleInstance(wy, hx));
g.dispose();
try ...{
ImageIO.write(target, "JPEG", outPutFile);
} catch (Exception ex) ...{
ex.printStackTrace();
}
}
public static void main(String arg[]) throws Exception ...{
zoomImage("c:/V.gif", "c:/V_50_50.gif", 50, 50, false);
}
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
本文将深入探讨如何使用ImageMagick库在Java中实现图片的缩放功能。 ImageMagick是一个强大的开源跨平台命令行工具集,用于处理图像。它支持超过100种图像格式,包括JPEG、PNG、GIF、BMP等。同时,ImageMagick也...
在Java编程领域,图片处理是一项常见的任务,其中图像缩放是尤为重要的操作。当我们需要调整图片大小,以适应不同的应用场景,如网页、移动设备或打印等,就需要进行图像缩放。本文将深入探讨Java中实现图像缩放的...
本教程将专注于使用Java语言实现图片的等比缩放和压缩技术,以满足存储和传输的需求。下面,我们将深入探讨这些关键知识点。 首先,我们来了解等比缩放。等比缩放是指在改变图片尺寸时,保持其长宽比不变,防止图片...
7. **配置参数**:在`PictureResize.java`程序中,很可能包含了配置图片缩放大小的参数,这样用户可以根据需求调整缩放比例。 总之,批量缩放图片的Java实现是一个结合了文件操作、图像处理和可能的并发编程的技术...
一、图片缩放 1. 使用`BufferedImage`类: Java的`java.awt.image`包提供了`BufferedImage`类,可以用来读取、创建和操作图像。通过`Graphics2D`对象,我们可以对`BufferedImage`进行缩放操作。以下是一个简单的...
在Java中实现图片缩放通常涉及以下步骤: 1. **读取图片**:使用`ImageIO.read()`方法从指定的文件路径或输入流中读取图片,将其转换为`BufferedImage`对象。 ```java File file = new File("path/to/your/image....
在Java编程语言中,处理图片是一项常见的任务,包括调整图片大小、等比例缩放、裁剪、压缩以及添加水印等。以下将详细介绍这些知识点: 1. **等比例缩放图片**: 在Java中,我们可以使用`java.awt.image....
在这个项目中,我们主要探讨如何利用Java实现图片的防篡改功能,通过生成图片的唯一标识(哈希值)并进行比对来检测图片是否被篡改。 1. **哈希算法**: 哈希(Hash)函数是一种将任意长度的数据映射为固定长度...
总之,Java提供了强大的图像处理能力,通过理解`BufferedImage`和`Graphics2D`,我们可以方便地实现图片缩放功能,同时考虑到缩放质量、性能和代码的可维护性。在进行图像处理时,记得根据项目需求选择合适的缩放...
采用双线性算法实现图片的缩放,今天,经过多次实现终于完成了图片的缩放,来给大家分享一下
实现图片的中心放大和缩小,我们可以维护一个缩放因子,并在每次调整大小时计算新的图片尺寸,保持图片的中心点不变。这可以通过改变`ImageIcon`的尺寸来实现。同时,需要更新显示组件(如`JLabel`)的尺寸以适应...
在实现图片缩放和滑动时,我们需要利用这一点来确保流畅的用户体验。 1. **SurfaceView的创建与初始化**: 在布局文件中添加SurfaceView,并在Activity的onCreate()方法中找到并初始化它。设置SurfaceHolder的回调...
以上就是使用Java实现图片上传并按需缩放显示的基本步骤。实际应用中,还需要考虑错误处理、内存管理、文件安全、性能优化等方面的问题。提供的文档"图片上传显示(缩小图片).doc"应该包含了更详细的代码示例和具体...
4. **图片缩放** - **前端缩放**:使用CSS的`transform`属性,可以实现图片的缩放效果,但这仅限于视觉上的缩放,不会改变图片的实际大小。 - **后端缩放**:在服务器端,可以使用Java的图像处理库,如`ImageIO`或...
在这里,我们将主要探讨如何使用Java AWT中的Graphics2D类来实现图片的缩放。 `ScaleImageDemo.java` 是一个Java应用程序,它展示了如何加载图片(例如 `2.jpg`),然后对其进行缩放。下面我们将深入解析这个过程。...
Java GIF图片缩放是开发过程中常见的一项任务,尤其是在处理动态图像时。GIF是一种支持动画的格式,广泛用于网络上。在Java中处理GIF图片,我们通常会使用到一些库,比如`gif4j`,这是一个轻量级且功能强大的Java库...
本文将详细讨论如何实现图片的缩放功能,基于提供的"图片缩放实现"的标题和描述,我们可以推断这是一个关于图片缩放效果的示例项目,名为"imageViewdemo"。 图片缩放涉及到图像处理的基本概念,主要目标是调整图片...
本示例中的"JAVA实现的图片大小随意拉动调整"着重讲解了如何利用Swing来实现图片的动态缩放功能,让用户可以自由调整图片的大小。这个功能在很多应用中都非常实用,比如图像查看器、编辑器或者任何需要展示可调整...