package
test;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
/** */
/**
* C-platform All Rights Reserved@2006-2007
* Author: hally
* Date: 2007-2-12
* Time: 19:48:43
* Modifier:hally
* Modify Date&Time: 2007-2-12 19:48:43
*/
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
import
com.gif4j.
*
;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
import
java.awt.
*
;
import
java.awt.image.BufferedImage;
import
java.io.File;
import
java.io.IOException;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
public
class
GifTest
...
{
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
// Usage: java GifImageWatermarkExample [PathToGifImageToWatermark] (please be sure that the gif4j jar is in your CLASSPATH)
// By default the gif4j_logotype.gif as an example gif image is used
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public static void main(String[] args) ...{
File gifImageFileToWatermark = null;
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
if (args.length == 0) ...{
gifImageFileToWatermark = new File("d:/1.gif ");
} else
gifImageFileToWatermark = new File(args[0]);
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
// load and decode gif image
GifImage gifImage = null;
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
try ...{
gifImage = GifDecoder.decode(gifImageFileToWatermark);
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
} catch (IOException e) ...{
e.printStackTrace();
System.exit(1);
}
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
// change out directory if it is necessary
File outputDir = new File("d:/result");
if (!outputDir.exists())
outputDir.mkdirs();
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
// create watermark image using TextPainter
TextPainter painter = new TextPainter(new Font("隶书", Font.BOLD, 25));
painter.setOutlinePaint(Color.WHITE);
painter.setForegroundPaint(Color.BLUE);
BufferedImage watermarkImage = painter.renderString("王海利", true);
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
// create watermark
Watermark watermark = new Watermark(watermarkImage, Watermark.LAYOUT_TOP_LEFT, 0.9f);
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
// apply watermark
GifImage topLeftWatermarked = watermark.apply(gifImage, true);
// apply watermark smoothly
GifImage topLeftWatermarked_smoothly = watermark.apply(gifImage, true);
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
// change the watermark alignment
watermark.setLayoutConstraint(Watermark.LAYOUT_MIDDLE_CENTER);
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
// apply watermark
// GifImage middleCenterWatermarked = watermark.apply(gifImage, false);
// apply watermark smoothly
// GifImage middleCenterWatermarked_smoothly = watermark.apply(gifImage, true);
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
// change the watermark alignment
// watermark.setLayoutConstraint(Watermark.LAYOUT_BOTTOM_RIGHT);
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
// apply watermark
// GifImage bottomRightWatermarked = watermark.apply(gifImage, false);
// apply watermark smoothly
// GifImage bottomRightWatermarked_smoothly = watermark.apply(gifImage, true);
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
// change the watermark alignment
// watermark.setLayoutConstraint(Watermark.LAYOUT_COVER_CONSECUTIVELY);
// change the watermark transparency
// watermark.setTransparency(0.20f);
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
// apply watermark
// GifImage coverConsWatermarked = watermark.apply(gifImage, false);
// apply watermark smoothly
// GifImage coverConsWatermarked_smoothly = watermark.apply(gifImage, true);
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
// Save the results
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
try ...{
GifEncoder.encode(topLeftWatermarked, new File(outputDir, "topLeftWatermarked.gif"));
GifEncoder.encode(topLeftWatermarked_smoothly, new File(outputDir, "topLeftWatermarked_smooth.gif"));
// GifEncoder.encode(middleCenterWatermarked, new File(outputDir, "middleCenterWatermarked.gif"));
// GifEncoder.encode(middleCenterWatermarked_smoothly, new File(outputDir, "middleCenterWatermarked_smooth.gif"));
// GifEncoder.encode(bottomRightWatermarked, new File(outputDir, "bottomRightWatermarked.gif"));
// GifEncoder.encode(bottomRightWatermarked_smoothly, new File(outputDir, "bottomRightWatermarked_smooth.gif"));
// GifEncoder.encode(coverConsWatermarked, new File(outputDir, "coverConsWatermarked.gif"));
// GifEncoder.encode(coverConsWatermarked_smoothly, new File(outputDir, "coverConsWatermarked_smooth.gif"));
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
} catch (IOException e) ...{
e.printStackTrace();
}
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
需要使用一个jar包,我的网络硬盘上有
http://free5.ys168.com/?hallywang