`
security
  • 浏览: 372417 次
  • 来自: www.pgp.org.cn
社区版块
存档分类
最新评论

发布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
分享到:
评论

相关推荐

    java开源包4

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包8

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包1

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包11

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包2

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包3

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包6

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包5

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包10

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包7

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包9

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包101

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    Java资源包01

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    JAVA上百实例源码以及开源项目

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    JAVA上百实例源码以及开源项目源代码

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    WP主题:HotNewspro 2.72

    HotNews(热点新闻)作为一款免费的Wordpress主题,集成了五、六十项功能,丰富的主题设置面板,功能模块化,虽是一款主题,却集成了CMS、BLOG、图片、视频等多个模版,统一的风格展示不同的内容。历经多次升级,...

    如何编写批处理文件批处理文件批处理文件

    简明批处理教程22009年10月20日 星期二 下午 05:35 最近对于批处理技术的探讨比较热,也有不少好的批处理程序发布,但是如果没有一定的相关知识恐怕不容易看懂和理解这些批处理文件,也就更谈不上自己动手编写了,古...

    新版Android开发教程.rar

    � Android 的平台基本上是免费的,虽然有部份原生链接库会要求费用,但大部份是免权利金; Android 的 程序可以采用 JAVA 开发,但是因为它的虚拟机 (Virtual Machine) Dalvik ,是将 JAVA 的 bytecode 转成 自 己...

Global site tag (gtag.js) - Google Analytics