为上传到服务器的图片添加水印
来源:互联网 发布:淘宝保税区发货靠谱吗 编辑:程序博客网 时间:2024/05/17 09:09
小葵花课堂开奖啦,上传图片想带文字水印肿么办,看下方例子:
- 嗯,是个栗子:
> 上传图片和加水印:
代码块
基于Spring,SpringMVC,Mybatis框架开发:
1.Controller:
@Controller
@RequestMapping(“/loading”)
public class Bannercontroller {
@Autowired
private BannerServie bs;
@RequestMapping(“/file”)
public String LoaderBanner(MultipartHttpServletRequest file,HttpServletRequest req){
List<~> list = file.getFiles(“file”);
for (MultipartFile multipartFile : list) { bs.addBanner(multipartFile,req); } return "/ok.jsp";}
}
2.Service
import java.awt.AlphaComposite;import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.awt.Image;import java.awt.RenderingHints;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.text.SimpleDateFormat;import java.util.Date;import java.util.List;import java.util.UUID;import javax.imageio.ImageIO;import javax.servlet.http.HttpServletRequest;import org.apache.commons.io.FilenameUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;import org.springframework.web.multipart.MultipartFile;import com.apache.dao.BannerDao;import com.apache.entity.Banner;import com.baizhi.util.ImageRemarkUtil;@Service@Transactionalpublic class BannerServiceImp implements BannerServie{ @Autowired private BannerDao bannerDao; // 水印透明度 private static float alpha = 0.5f; // 水印横向位置 private static int positionWidth = 100; // 水印纵向位置 private static int positionHeight = 100; // 水印文字字体 private static Font font = new Font("宋体", Font.BOLD, 72); // 水印文字颜色 private static Color color = Color.red; // 水印图片间隔 private static int interval = 0; @Override public void addBanner(MultipartFile file, HttpServletRequest req) { //获取本项目的路径 String realpath= req.getSession().getServletContext().getRealPath("/"); //获取上级目录 String webapps = new File(realpath).getParent(); //创建上传的目录 File file2 = new File(webapps,"loadup"); //判断覅le是否存在 如果存在就创建新的文件路径 if(!file2.exists()){ file2.mkdir(); } /**以上的方法是创建目录 * 修改文件名时间戳+ UUID+"."+后缀 */ //获取原来文件的名字 String file3 = file.getOriginalFilename(); //创建时间戳 String filename=new SimpleDateFormat("yyyyMMddHHmmssSS").format(new Date()) +UUID.randomUUID().toString().replace("-", "")+"."+FilenameUtils.getExtension(file3); //上传文件状态 文件路径 id 放入数据库 File file4 = new File(file2,filename); OutputStream os = null; try { file.transferTo(file4); // 1、源图片 Image srcImg = ImageIO.read(file4); BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null), srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB); // 2、得到画笔对象 Graphics2D g = buffImg.createGraphics(); // 3、设置对线段的锯齿状边缘处理 g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); g.drawImage( srcImg.getScaledInstance(srcImg.getWidth(null), srcImg.getHeight(null), Image.SCALE_SMOOTH), 0, 0, null); // 5、设置水印文字颜色 g.setColor(color); // 6、设置水印文字Font g.setFont(font); // 7、设置水印文字透明度 g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, alpha)); // 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y) g.drawString("版权所有,侵权必究", positionWidth, positionHeight); // 9、释放资源 g.dispose(); // 10、生成图片 os = new FileOutputStream(file4); ImageIO.write(buffImg, "JPG", os); String netpath=req.getScheme()+"://"+req.getServerName()+":"+req.getServerPort() +File.separator+"loadup"+File.separator+filename; String id = UUID.randomUUID().toString().replace("-", ""); //调取方法那id netpath 入库 Banner banner = new Banner(id,"name",netpath,"1","1",new Date()); bannerDao.Uploaderpath(banner); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { if (null != os) os.close();//关闭流 } catch (Exception e) { e.printStackTrace(); } } }
重点内容
脚注
参考:http://blog.csdn.net/zengshunyao/article/details/44758297[^footnote].
流程图:
阅读全文
0 0
- 为上传到服务器的图片添加水印
- 图片水印的添加
- 图片水印的添加
- 给服务器上的指定的图片添加文字水印
- PHP获取服务器图片并添加水印
- Java添加水印+图片水印+文字水印
- 图片的版权保护(添加水印)
- 图片的版权保护(添加水印)
- 图片的版权保护(添加水印)
- IHttpHandler的用法:给图片添加水印
- 一个图片添加水印的类
- java实现图片水印的添加
- php图片添加水印的例子
- 在图片添加旋转的水印文字
- 简单的为图片添加水印
- 为图片添加水印的源码
- JAVA编写的图片水印添加(文字水印、图片水印)
- 给图片添加水印
- 动态语言和静态语言的比较
- 构造d3关系图前后台实现
- 搭建本地服务器激活IDEA、Jrebel(热部署插件)
- CreateProcess主进程与子进程管道通信的封装
- No WebApplicationContext found
- 为上传到服务器的图片添加水印
- VRP基本操作
- Spring Framework 5.0:注解的方式加载Bean之包扫描、@Autowired
- Android学习笔记之图形图像处理技术
- 1033. 旧键盘打字(20)
- 谷歌AI助NASA发现第二个"太阳系";传快手完成新一轮融资;摩拜起诉小广告公司丨价值早报
- Anaconda 安装OpenCV
- 创投日报:12月14日收录投融资项目24起
- glide缓存无法更新