import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.awt.Color;
//生成缩略图和给图上打上公司logo
public static void main(String[] args) throws IOException {
//源文件,必须是有文件
String pathS="D:/tdeng/My Pictures/showPhoto.gif";
//目标文件
String pathD="D:/temp/showPhotomini.gif";
//拷贝文件
copyfile(pathS,pathD);
//----------------------------------------------
//生成缩小mimi图
File stadimgfile2 = new File(pathD);
//图片缓存
BufferedImage img2 = ImageIO.read(stadimgfile2);
//得到图片的宽和高
double width = img2.getWidth();
double height = img2.getHeight();
int miniwidth = 120;//缩略图宽度
int miniheight = 90;//缩略图高度
double ratew = miniwidth / width;
double rateh = miniheight / height;
//获得适合的缩放比率,即以在规定缩略尺寸中完整显示图片内容的同时又保证最大的缩放比率
double rate = Math.min(ratew, rateh);
rate = (Math.rint((rate * 100) + 0.5)) / 100;
BufferedImage imgmini = new java.awt.image.BufferedImage(miniwidth, miniheight,BufferedImage.TYPE_USHORT_565_RGB);
Graphics2D gmini = imgmini.createGraphics();
gmini.setBackground(Color.WHITE);
gmini.clearRect(0, 0, miniwidth, miniheight);
AffineTransform trans = new AffineTransform();
trans.scale(rate, rate);
AffineTransformOp op = new AffineTransformOp(trans, AffineTransformOp.TYPE_BILINEAR);
gmini.drawImage(img2, op, (int) (miniwidth - (width * rate)) / 2, (int) (miniheight - (height * rate)) / 2);
ImageIO.write(imgmini, "jpg", stadimgfile2);
//---------------------------------------------------------
//mimi图加水印
BufferedImage img3 = ImageIO.read(stadimgfile2);
int mimi_width2 = img3.getWidth();
int mimi_height2 = img3.getHeight();
BufferedImage imgmimi2 = new java.awt.image.BufferedImage(mimi_width2, mimi_height2,
BufferedImage.TYPE_USHORT_565_RGB);
//logo文件的位置,必须是真是的
String logoFile = "D:/tdeng/My Pictures/logo.gif";
BufferedImage watermark3 = ImageIO.read(new File(logoFile));
Graphics2D gmimi2 = imgmimi2.createGraphics();
gmimi2.drawImage(img3, null, 0, 0);
gmimi2.drawImage(watermark3, null, mimi_width2 - watermark3.getWidth(), mimi_height2 - watermark3.getHeight());
ImageIO.write(imgmimi2, "jpg", stadimgfile2);
}
// 使用FileInputStream和FileOuStream
public static void copyfile(String pathSrc,String pathDest) throws IOException
{
FileInputStream fi=new FileInputStream(pathSrc);
FileOutputStream fo=new FileOutputStream(pathDest);
byte data[]=new byte[fi.available()];
fi.read(data);
fo.write(data);
fi.close();
fo.close();
}
分享到:
相关推荐
Java 图片生成缩略图是Java程序开发中一个常见的需求,通过将图片以缩略图形式展示,可以提高用户体验和网站性能。在本文中,我们将介绍使用Java生成缩略图的方法。 缩略图生成方法 在 Java 中,生成缩略图可以...
本文介绍了使用Java实现上传图片并生成缩略图的方法,包括获取文件路径、读取图像、创建缩略图及保存缩略图等步骤。通过这种方式,可以在不损失原图质量的前提下,有效地减少加载时间,提升用户体验。此外,本文还...
在Java编程中,生成视频的缩略图是一项常见的任务,特别是在多媒体处理或视频分享平台的开发中。这个实例主要关注如何使用Java在指定的时间点截取视频生成图片。以下是一些相关的知识点: 1. **Java Media ...
在Java编程环境中,批量上传图片并生成缩略图是一项常见的需求,特别是在开发Web应用时,例如内容管理系统或者论坛。这个任务通常涉及到文件处理、图像处理和服务器端编程等多个技术领域。接下来,我们将深入探讨...
java 生成缩略图类 源代码 (已经封装好)
在Java编程中,生成缩略图是一项常见的任务,特别是在处理图像处理、网页设计或移动应用开发时。这个任务涉及到读取原始图像,调整其尺寸,然后保存为较小的版本,即缩略图。在这个过程中,我们可以使用Java的内置库...
根据提供的文件信息,我们可以总结出以下关于“Java生成缩略图”的相关知识点: ### Java生成缩略图基础知识 #### 缩略图的概念 缩略图是原始图像的一个较小版本,通常用于网页展示、图片预览等场景。通过生成缩略...
在Java编程环境中,获取视频缩略图是一项常见的需求,尤其在多媒体应用或者视频分享平台中。这个过程涉及到多媒体处理和图像操作的知识。本文将详细解释如何在Java中实现这一功能,以及相关的技术点。 首先,Java...
在本文中,我们将深入探讨如何基于Springmvc实现图片上传及生成缩略图的功能。Springmvc是Spring框架的一个重要模块,用于构建MVC模式的Web应用,它提供了强大的数据绑定、模型映射、视图渲染等功能,是Java开发中的...
java图片裁剪和java生成缩略图.pdf
在这个特定的场景中,"JSP上传图片并生成缩略图"是一个常见的功能需求,尤其是在开发包含用户交互和多媒体内容的Web应用时。下面我们将详细探讨这一技术实现的关键知识点。 首先,**上传组件**是Web应用中用于接收...
本项目就是关于如何在Java环境中使用ffmpeg来获取视频的缩略图,提供了一个简单易用的解决方案。 首先,ffmpeg是一个强大的命令行工具,它支持多种视频、音频格式的处理,包括转换、合并、剪辑以及生成缩略图等。在...
在Java服务器页面(JSP)中,上传图片并生成缩略图是一项常见的需求,尤其在构建网站或Web应用时。这个过程涉及到多个步骤,包括文件上传、图片处理和存储。以下将详细介绍如何实现这一功能。 1. **文件上传**: -...
在WEB应用中,动态缩略图通常与服务器端编程结合,如使用Servlet或Spring MVC。例如,当客户端请求缩略图时,服务器会根据请求参数生成相应的缩略图,并将其返回。在这种情况下,`WEB-INF`和`META-INF`目录是Java ...
在IT行业中,生成网页缩略图是一项常见的需求,特别是在网站聚合、新闻摘要或者社交媒体分享预览等场景。Java作为一门广泛使用的服务器端编程语言,自然也有能力实现这一功能。本篇将详细介绍如何利用Java和...
生成网页缩略图在很多场景下都有应用,如新闻聚合平台、电子商务网站的商品预览、社交媒体分享预览等。 10. **维护与更新**: 由于Web技术不断进步,渲染引擎也需要定期更新以支持新的HTML、CSS和JavaScript特性...
将图片生成缩略图和转换为二进制的工具类,缩略图大小可调
在 Java 中生成图片缩略图是一项常见的需求,这通常涉及到图像处理技术。以下是一个 Java 类 `GetPicture` 的示例,它包含了获取网络图片、截取屏幕以及创建图片缩略图的功能。我们将详细解释其中的关键知识点。 1....
PDF生成缩略图是将PDF文档中的页面转换成小尺寸的图像表示,通常用于预览、索引或在文件管理器中快速查看PDF内容。在IT领域,这涉及到PDF处理和图像处理技术。以下是一些关于如何在C#中生成PDF缩略图的关键知识点: ...
在IT行业中,生成缩略图是一项常见的任务,特别是在图像处理、网页设计以及各种应用程序中。缩略图的主要目的是为了快速预览大图像或一组图像,节省用户的时间和带宽。本压缩包提供了一个批量生成缩略图工具的源代码...