- 浏览: 7857873 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
加水印并且可以加缩略图的,.水印图最好用透明的png图,
import java.awt.image.BufferedImage;
import java.io.File;
import java.awt.Image;
import java.awt.Graphics2D;
import java.util.Random;
import java.awt.Font;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.FileOutputStream;
import javax.imageio.ImageIO;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class ImageUtil {
private String sourceDir; // 图片的存放路径
private String destinationDir; // 缩略图的存放路径
private String mode; // 生成缩略图的模式,可选ScaleOnly或ClipAndScale
private String width; // 缩略图的宽度
private String height; // 缩略图的高度
private int sourceWidth;
private int sourceHeight;
// 以下代码段是为了使用Spring注入属性
public void setCharacterStorage(String characterStorage) {
this.characterStorage = characterStorage;
}
public void setDestinationDir(String destinationDir) {
this.destinationDir = destinationDir;
}
public void setHeight(String height) {
this.height = height;
}
public void setMode(String mode) {
this.mode = mode;
}
public void setSourceDir(String sourceDir) {
this.sourceDir = sourceDir;
}
public void setWidth(String width) {
this.width = width;
}
// 生成缩略图的方法,默认缩略图的文件名和原图相同,存放路径不同
public void createMicroImage(String fileName)
throws Exception {
// 判断sourceDir的格式是否为以"\"结尾,并生成完整的路径
String sourceFileName;
String destinationFileName;
if (sourceDir.lastIndexOf('\\') != (sourceDir.length() - 1 )) {
sourceFileName=sourceDir+"\\"+fileName;
destinationFileName = destinationDir+"\\"+fileName;
}
else {
sourceFileName = sourceDir+fileName;
destinationFileName =destinationDir+fileName;
}
//加水印
String pressImg="d:\\tomcat6\\webapps\\Springlover\\images\\nanshawatermark.png";
File _file = new File(sourceFileName);
Image src = ImageIO.read(_file);
int widethw = src.getWidth(null);
int heightw = src.getHeight(null);
BufferedImage imagewater = new BufferedImage(widethw, heightw,
BufferedImage.TYPE_INT_RGB);
Graphics g = imagewater.createGraphics();
g.drawImage(src, 0, 0, widethw, heightw, null);
//水印文件
File _filebiao = new File(pressImg);
Image src_biao = ImageIO.read(_filebiao);
int wideth_biao = src_biao.getWidth(null);
int height_biao = src_biao.getHeight(null);
g.drawImage(src_biao, (widethw - wideth_biao) / 2,
(heightw - height_biao) / 2, wideth_biao, height_biao, null);
//水印文件结束
g.dispose();
FileOutputStream out = new FileOutputStream(sourceFileName);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(imagewater);
out.close();
// 创建文件,并判断原文件是否存在
File sourceFile=new File(sourceDir+"\\"+fileName);
if (!sourceFile.exists()) {
// throw new Exception();
System.out.println("文件不存在");
}
// 根据扩展名判断原文件的格式
String extension = fileName.substring(fileName.lastIndexOf('.') + 1 );
if ( ! extension.equalsIgnoreCase("jpg") && ! extension.equalsIgnoreCase("bmp")
&& ! extension.equalsIgnoreCase("gif") && ! extension.equalsIgnoreCase("png")) {
// throw new Exception();
System.out.println("扩展名格式错误");
}
// 判断缩略图的宽度和高度是否正确,如果不能正确解析则抛出异常
int destinationWidth = Integer.parseInt(width);
int destinationHeight = Integer.parseInt(height);
// 判断缩放模式是否正确,如果配置错误,则抛出异常
if (!mode.equalsIgnoreCase("ScaleOnly")
&& ! mode.equalsIgnoreCase( " ClipAndScale " )) {
throw new Exception();
}
// 读取图像文件,并创建BufferedImage对象,如果不能读取,则抛出异常
BufferedImage image = null ;
image = ImageIO.read(sourceFile);
if (image == null ) {
// throw new Exception();
System.out.println("不能读取");
}
// 获取原图像文件的高度和宽度
sourceWidth = image.getWidth();
sourceHeight = image.getHeight();
// 生成缩略图
if (mode.equalsIgnoreCase("ScaleOnly")) {
BufferedImage destinationImage;
if (( float )sourceWidth / destinationWidth > ( float )sourceHeight / destinationHeight) {
Image tempImage = image.getScaledInstance(destinationWidth, ( int )(destinationWidth * (( float )sourceHeight / sourceWidth)), Image.SCALE_DEFAULT);
destinationImage = new BufferedImage(destinationWidth, ( int )(destinationWidth * (( float )sourceHeight / sourceWidth)),BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = destinationImage.createGraphics();
graphics.drawImage(tempImage, 0 , 0 , null );
} else {
Image tempImage = image.getScaledInstance(( int )(destinationHeight * (( float )sourceWidth / sourceHeight)), destinationHeight, Image.SCALE_DEFAULT);
destinationImage = new BufferedImage(( int )(destinationHeight * (( float )sourceWidth / sourceHeight)), destinationHeight,BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = destinationImage.createGraphics();
graphics.drawImage(tempImage, 0 , 0 , null );
}
// 如果是bmp或者gif,则缩略图为png格式
if (extension.equalsIgnoreCase("bmp") || extension.equalsIgnoreCase("gif" )) {
extension = "png " ;
destinationFileName = destinationFileName.substring( 0 , destinationFileName.lastIndexOf('.')) + " . " + extension;
}
File destinationFile = new File(destinationFileName);
ImageIO.write(destinationImage, extension, destinationFile);
} else {
BufferedImage destinationImage;
if (( float )sourceWidth / destinationWidth > ( float )sourceHeight / destinationHeight) {
// 先裁减
int x = sourceWidth - ( int )(sourceHeight * (( float )destinationWidth / destinationHeight));
Image clipedImage = image.getSubimage(( int )( 0.5 * x), 0 , ( int )(sourceHeight * (( float )destinationWidth / destinationHeight)), sourceHeight);
// 后缩放
Image scaledImage = clipedImage.getScaledInstance(destinationWidth, destinationHeight, Image.SCALE_DEFAULT);
destinationImage = new BufferedImage(destinationWidth, destinationHeight,BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = destinationImage.createGraphics();
graphics.drawImage(scaledImage, 0 , 0 , null );
} else {
// 先裁减
int y = sourceHeight - ( int )(sourceWidth * (( float )destinationHeight / destinationWidth));
Image clipedImage = image.getSubimage( 0 , ( int )( 0.5 * y), sourceWidth, ( int )(sourceWidth * (( float )destinationHeight / destinationWidth)));
// 后缩放
Image scaledImage = clipedImage.getScaledInstance(destinationWidth, destinationHeight, Image.SCALE_DEFAULT);
destinationImage = new BufferedImage(destinationWidth, destinationHeight,BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = destinationImage.createGraphics();
graphics.drawImage(scaledImage, 0 , 0 , null );
}
// 如果是bmp或者gif,则缩略图为png格式
if (extension.equalsIgnoreCase("bmp" ) || extension.equalsIgnoreCase("gif" )) {
extension="png" ;
destinationFileName = destinationFileName.substring( 0 , destinationFileName.lastIndexOf('.')) + " . " + extension;
}
File destinationFile = new File(destinationFileName);
ImageIO.write(destinationImage, extension, destinationFile);
}
}
主程序中调用时,可以这样:
ImageUtil util = new ImageUtil();
util.setSourceDir(uploaddir);
util.setDestinationDir(suoluedir);
util.setWidth("125");
util.setHeight("125");
// util.pressImage(watermarkFile,srcFile,0,0);
// 以仅缩放的形式生成缩略图
util.setMode("ScaleOnly");
util.createMicroImage(srcFile);
发表评论
-
复习:强迫线程顺序执行方式
2019-01-03 23:42 1483方法1: 三个线程,t1,t2,t3,如果一定要按顺序执行, ... -
(转)不错的前后端处理异常的方法
2019-01-02 23:16 1968前言 在 Web 开发中, 我们经常会需要处理各种异常, 这是 ... -
info q的极客时间大咖说等资料下载
2018-08-15 08:40 3417info q的极客时间大咖说等资料下载,还有不少思维导图 链 ... -
CXF 客户端超时时间设置(非Spring配置方式)
2018-07-03 22:38 2188import org.apache.cxf.endpoint. ... -
(转)synchronized关键字画像:正确打开方式
2018-06-14 09:25 450https://mp.weixin.qq.com/s/b3Sx ... -
CountDownLatch的例子
2018-06-13 14:10 634public class StatsDemo { ... -
两道面试题,带你解析Java类加载机制
2018-06-12 16:29 556https://mp.weixin.qq.com/s/YTa0 ... -
Spring中获取request的几种方法,及其线程安全性分析
2018-06-11 09:03 625https://mp.weixin.qq.com/s/KeFJ ... -
内部类小结
2018-06-06 10:25 399https://mp.weixin.qq.com/s/hErv ... -
JVM虚拟机小结1
2018-06-04 20:43 4661 jps -l //列出详细的类名和进程ID 2)jps ... -
windows下自带命令行工具查看CPU资源情况等
2018-06-04 12:53 3045微软提供了不少命令行 ... -
(收藏)深入分析Java的序列化与反序列化
2018-05-30 15:21 557https://mp.weixin.qq.com/s/T2Bn ... -
apache common包中的序列化工具
2018-05-30 09:10 1780什么是序列化 我们的 ... -
JAVA8 JVM的变化: 元空间(Metaspace)
2018-05-24 22:30 913本文将会分享至今为至我收集的关于永久代(Permanent G ... -
(转)服务器性能指标(一)——负载(Load)分析及问题排查
2018-05-21 21:03 1266原创: Hollis Hollis 负载 ... -
(转)对象复用
2018-05-20 15:27 810public class Student { priv ... -
mapreduce中入门中要注意的几点
2018-05-06 08:59 622在 mapreduce中,比如有如下的词: I love b ... -
HDFS的基本操作
2018-05-02 21:47 886-mkdir 在HDFS创建目录 ... -
一个不错的开源工具类,专门用来解析日志头部的,好用
2018-05-02 20:00 712一个不错的开源工具类,专门用来解析日志头部的,好用。 http ... -
介绍个不错的RESTFUL MOCK的工具wiremock
2018-04-27 21:02 1856介绍个不错的RESTFUL MOCK的工具wiremock,地 ...
相关推荐
图片批量加水印以及缩略图,用法简单 只需选择要加水印的图片的文件夹,以用生成的图片保存路径就可以实现图片批量加水印,决定好用的一个小软件
PHP图片处理(上传、加水印、缩略图),对图片的处理
批量生成缩略图,加水印,重命名,在网页制作中常常需要为大批量图片生成缩略图,“批量缩略图工具”就是这样一个工具,为图片文件批量生成缩略图。
图片批量加水印,压缩,创建缩略图,旋转,打包成pdf,word,winrar
php 将两个图片生成一张图片,加水印,并另生成缩略图
贡献一个跟随了我多年的PHP图片上传、加水印及生成清晰缩略图等综合处理类,简单用法在类文件里面有说明,其他方法调用请看代码.
PHP图片加水印、生成缩略图,对图片进行操作
在网上找了好久都没有一个好的图片上传组建,于是我自己弄了一个, 功能非常 强大。...能够显示缩略图,一次上传多张,生成缩略图,按比例缩放。添加水印都有。而且能够兼容时下的各种浏览器。 Jquery
图片上传:生成缩略图 加文字水印 图片水印 51aspx.png为水印图片 远程图片抓取(保存到本地)支持jpg、gif、bmp、png 图片抓取后自动以Auto+日期+原名称命名 输入远程图片地址(支持Html)
PHP上传多图片,带有生成缩略图,自动加水印功能的类
生成缩略图并加水印文字源码 由本地上传到服务器图片,并生成缩略图,并根据用户的输入来选择打印水印文字的内容,还可以设定每行显示多少字符, 以及在缩略图上打印文字的位置
图片上传,以及图片加水印,上传后生成相应的缩略图。
本项目的功能是上传文件 处理图片(加水印,生成缩略图,压缩图片) 生成XML文档 拆分XML文档
2.图片旋转加水印; 3.水印位置旋转控制精准度; 4.原图自定义删除; 5.图像亮度、对比度、RGB颜色值的调整; 6.可获取生成后的图片路径; 7.图片无损生成; 8.水印文字阴影禁启用; 9.水印文字中文字竖形排列,增加文字...
分享一个实现缩略图和加水印的php类,设置图片的参数,进行图片的缩放,然后给图片增加水印。
Asp.net超强图片上传类加水印加缩写图
asp.net(#C)生成缩略图,加文字水印,加图片水印的类(自己一直在用,不错啊,推荐给大家用)
1、多图片选择、上传、水印、缩略功能 2、略缩图片,大中小三种 3、添加图片检测,限制图片大小 4、略缩图自动分类 5、自主设置是否添加文字水印 6、自主设置是否添加图片水印 7、自主设置水印位置 注释:...
asp 图片加文字水印,asp图片加图片水印,asp生成缩略图
ASP.NET加水印文字并生成缩略图源码