当前位置: 首页>編程日記>正文

GifUtil给gif图片添加文字、图片水印

GifUtil给gif图片添加文字、图片水印

gif4j给gif图片添加文字、图片水印

最近在做一个给gif图片添加图片水印的工作,在网上查了下好多童鞋推荐使用gif4j。在此将自己的使用过程在此做下笔记。

操作步骤

  1. 下载gif4j jar
    官方下载地址:
    http://www.gif4j.com/download.htm
    由于该软件是非开软项目因此直接使用时会有gif4j相应的标记
  2. 代码【代码里边已经做了相应的注释大概应该可以看懂,在此就不做过多说明了】
package com.lenovo;
import java.awt.Color;import java.awt.Font;import java.awt.Point;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;
import javax.imageio.ImageIO;
import com.gif4j.GifDecoder;
import com.gif4j.GifEncoder;
import com.gif4j.GifImage;
import com.gif4j.GifTransformer;
import com.gif4j.TextPainter;
import com.gif4j.Watermark;/*** * @author liao**/
public class GifUtil {/*** 缩放gif图片** @param src* @param dest* @param width* @param height* @throws IOException*/public static void makeGif(File src, File dest, int width, int height)throws IOException {GifImage gifImage = GifDecoder.decode(src);// 创建一个GifImage对象.GifImage resizeIMG = GifTransformer.resize(gifImage, width, height,true);GifEncoder.encode(resizeIMG, dest);}public static void makeGif(String src, String dest, int width, int height)throws IOException {GifImage gifImage = GifDecoder.decode(new File(src));// 创建一个GifImage对象.makeGif(new File(src), new File(dest), gifImage.getScreenWidth() / 2,gifImage.getScreenHeight() / 2);}public static void makeGif(File src, File dest) throws IOException {GifImage gifImage = GifDecoder.decode(src);// 创建一个GifImage对象.makeGif(src, dest, gifImage.getScreenWidth() / 2, gifImage.getScreenHeight() / 2);}public static void makeGif(String src, String dest) throws IOException {makeGif(new File(src), new File(dest));}/*** 在图片中加文字水印* @param src* @param watermarkText* @param dest* @throws IOException*/public static void addTextWatermarkToGif(File src, String watermarkText, File dest)throws IOException {//水印初始化、设置(字体、样式、大小、颜色)TextPainter textPainter = new TextPainter(new Font("黑体", Font.ITALIC, 12));textPainter.setOutlinePaint(Color.WHITE);BufferedImage renderedWatermarkText = textPainter.renderString(watermarkText, true);//图片对象GifImage gf = GifDecoder.decode(src);//获取图片大小int iw = gf.getScreenWidth();int ih = gf.getScreenHeight();//获取水印大小int tw = renderedWatermarkText.getWidth();int th = renderedWatermarkText.getHeight();//水印位置Point p = new Point();p.x = iw - tw - 5;p.y = ih - th - 4;//加水印Watermark watermark = new Watermark(renderedWatermarkText, p);gf = watermark.apply(GifDecoder.decode(src), true);//输出GifEncoder.encode(gf, dest);}/*** 在图片中加图片水印* @param src* @param watermarkText* @param dest* @throws IOException*/public static void addImageWatermarkToGif(File src, String watermarkPath, File dest)throws IOException {BufferedImage renderedWatermarkText =ImageIO.read(new File(watermarkPath));//图片对象GifImage gf = GifDecoder.decode(src);//获取图片大小int iw = gf.getScreenWidth();int ih = gf.getScreenHeight();//获取水印大小int tw = renderedWatermarkText.getWidth();int th = renderedWatermarkText.getHeight();//水印位置Point p = new Point();p.x = 10;p.y = 20;//加水印Watermark watermark = new Watermark(renderedWatermarkText, p);//水印透明度watermark.setTransparency(1);gf = watermark.apply(GifDecoder.decode(src), false);//输出GifEncoder.encode(gf, dest);}public static void main(String[] arg) throws Exception{//    GifUtil.addTextWatermarkToGif(new File("d:\\10.gif"), "@搞笑狂妞", new File("d:\\11.gif"));GifUtil.addImageWatermarkToGif(new File("d:\\gif\\10.gif"), "d:\\gif\\3.png", new File("d:\\gif\\4.gif"));}}


https://www.fengoutiyan.com/post/15879.html

相关文章:

  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機