David.Turing's blog

 

发布GIF4J破解版

2年前,我提供了一个GIF4J的可用版,GIF4J是一套针对gif操作的Java类库。
周末无聊,最终破解了Gif4J的"Eval Gif4j"。

import  com.gif4j. * ;

import  java.awt. * ;
import  java.awt.image.BufferedImage;
import  java.io.File;
import  java.io.IOException;


public   class  GifImageWatermarkExample {

    
//  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
     public   static   void  main(String[] args) {
        File gifImageFileToWatermark 
=   null ;
        
if  (args.length  ==   0 ) {
            gifImageFileToWatermark 
=   new  File( " test.gif " );
        } 
else
            gifImageFileToWatermark 
=   new  File(args[ 0 ]);

        
//  load and decode gif image
        GifImage gifImage  =   null ;
        
try  {
            gifImage 
=  GifDecoder.decode(gifImageFileToWatermark);
        } 
catch  (IOException e) {
            e.printStackTrace();
            System.exit(
1 );
        }

        
//  change out directory if it is necessary
        File outputDir  =   new  File( " . "   +  File.separator  +   " result " );
        
if  ( ! outputDir.exists())
            outputDir.mkdirs();

        
//  create watermark image using TextPainter
        TextPainter painter  =   new  TextPainter( new  Font( " Verdana " , Font.BOLD,  10 ));
        painter.setOutlinePaint(Color.WHITE);
        BufferedImage watermarkImage 
=  painter.renderString( " david.turing " true );

        
//  create watermark
        Watermark watermark  =   new  Watermark(watermarkImage, Watermark.LAYOUT_TOP_LEFT,  0.2f );

        
//  apply watermark
        GifImage topLeftWatermarked  =  watermark.apply(gifImage,  true );
        
//  apply watermark smoothly
        GifImage topLeftWatermarked_smoothly  =  watermark.apply(gifImage,  true );

        
//  change the watermark alignment
        watermark.setLayoutConstraint(Watermark.LAYOUT_MIDDLE_CENTER);

        
//  apply watermark
        GifImage middleCenterWatermarked  =  watermark.apply(gifImage,  false );
        
//  apply watermark smoothly
        GifImage middleCenterWatermarked_smoothly  =  watermark.apply(gifImage,  true );

        
//  change the watermark alignment
        watermark.setLayoutConstraint(Watermark.LAYOUT_BOTTOM_RIGHT);

        
//  apply watermark
        GifImage bottomRightWatermarked  =  watermark.apply(gifImage,  false );
        
//  apply watermark smoothly
        GifImage bottomRightWatermarked_smoothly  =  watermark.apply(gifImage,  true );

        
//  change the watermark alignment
        watermark.setLayoutConstraint(Watermark.LAYOUT_COVER_CONSECUTIVELY);
        
//  change the watermark transparency
        watermark.setTransparency( 0.20f );

        
//  apply watermark
        GifImage coverConsWatermarked  =  watermark.apply(gifImage,  false );
        
//  apply watermark smoothly
        GifImage coverConsWatermarked_smoothly  =  watermark.apply(gifImage,  true );

        
//  Save the results
         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 " ));
        } 
catch  (IOException e) {
            e.printStackTrace();
        }
    }
}
下面是运行的结果:
topLeftWatermarked.gifmiddleCenterWatermarked.gif
coverConsWatermarked.gifbottomRightWatermarked_smooth.gif

破解的包放在我的UserGroup下载:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=29304&threadID=36395&messageID=214504

posted on 2006-07-17 10:32 david.turing 阅读(7040) 评论(6)  编辑  收藏 所属分类: Java类库收集数字水印

评论

# re: 发布GIF4J破解版 2006-07-17 11:00 灵感之源

不错  回复  更多评论   

# re: 发布GIF4J破解版 2006-11-15 10:09 jacky_hn

老大。这个GIF怎么支持中文呀。我用watermarked 输出中文的时候全是乱码!!!郁闷忘老大能解决。。  回复  更多评论   

# re: 发布GIF4J破解版 2007-09-14 17:42 shengjie

楼主破解的好像有bug
公司最近用这个包的时候。把jpg文件改为gif之后上传。tomcat自动关闭了。
我们在检查错误。不知道是gif4j的问题还是我们代码的问题。
  回复  更多评论   

# re: 发布GIF4J破解版 2007-09-16 12:57 david.turing

哦,JPG似乎不支持吧?  回复  更多评论   

# re: 发布GIF4J破解版 2008-02-28 09:16 xyflash

如果要加图片水印扎办  回复  更多评论   

# re: 发布GIF4J破解版 2008-12-14 09:49 jackyren007

不错  回复  更多评论   


只有注册用户登录后才能发表评论。

网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问  
 

导航

统计

常用链接

留言簿(110)

我参与的团队

随笔分类(126)

随笔档案(155)

文章分类(9)

文章档案(19)

相册

搜索

积分与排名

最新随笔

最新评论

阅读排行榜

评论排行榜