`
neptune
  • 浏览: 362090 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

GIF图片转换

阅读更多
http://security.iteye.com/blog/35023




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

相关推荐

    swf转gif图片转换器

    swf转gif图片转换器 swf gif 格式转换

    GIF图片转换为SWF工具

    今天我们将深入探讨如何使用“GIF图片转换为SWF工具”这一小工具,来实现这两种格式之间的转换。 首先,GIF是一种支持多帧动画的位图格式,它支持透明度,并且文件大小相对较小,适合在网络上传输。然而,GIF不支持...

    单片机LCD图片转换工具,Gif图片提取

    支持bmp,jpg,ico,gif图片转换和数据提取,gif图片画帧提取,单片机lcd格式转换等。

    静图变gif 图片转换

    - EzGIF:一个在线平台,用户无需下载软件即可上传图片并将其转换为GIF。 - Animaker:除了基本的GIF制作,还提供各种动画模板,适合制作复杂动效。 4. 使用步骤 - 导入图片:将需要转换的静态图像导入到软件中...

    qt实现gif图片转换器源码

    最近,QQ上好多各种gif表情。每一个都很经典呀。于是我就想把它转换成一张张静态图片。没学过ps。于是写了几行代码。完工。更多资源。欢迎关注我的博客: http://blog.csdn.net/wu5151

    GifAnimation:实现将gif图片转换为cocos2d-x帧动画

    GifAnimation项目就是为了解决这个问题,它提供了将GIF图片转换为cocos2d-x帧动画的功能,并且支持cocos2d-x 3.0及以上版本,具有良好的跨平台兼容性。 1. **GIF图片解析** GIF是一种流行的位图格式,特别适合用于...

    图片GIF转换器

    通常,用户可以通过以下步骤进行图片转换: 1. 打开软件,点击“添加文件”按钮,导入需要转换的图片或者视频。 2. 在设置面板中,你可以选择转换的输出格式为GIF,并调整相关的参数,如帧速率、颜色质量等,以达到...

    java图片压缩文件大小图片大小(支持gif动态图)

    这个主题主要涉及如何利用Java来减少图片文件的大小,包括静态图片(如JPEG、PNG)以及动态图片(如GIF)。下面我们将深入探讨相关的知识点。 首先,Java中的核心库`javax.imageio`提供了对图片读取、写入和处理的...

    GIF图片处理工具

    描述中的“GIF图片转换工具,功能一目了然,操作简单”强调了该工具的易用性和直观性。这表明它可能设计得非常用户友好,没有复杂的设置或技术术语,使得无论是初级用户还是高级用户都能快速上手。转换功能可能包括...

    如何将jpg,png,gif图片变为WebP图片.zip

    以下是一些关于如何将jpg、png、gif图片转换为WebP格式的关键知识点: 1. **WebP格式特性**: - 静态图像:WebP支持有损和无损压缩,无损压缩类似于PNG,有损压缩类似于JPEG,但压缩效果更好。 - 动画支持:虽然...

    android 显示大的gif图片 能解决内存溢出的问题

    10. **GIF预处理**:在应用启动时或在后台处理,将大的GIF图片转换为更小的尺寸或静态的序列图片,然后在需要时加载。 综上所述,解决Android中显示大GIF图片导致的内存溢出问题,需要结合多种策略,包括但不限于...

    Gif图片播放和暂停js代码jQuery插件

    当用户首次访问页面时,插件会将GIF图片转换为静态预览图,减少初始加载时间。然后,当用户点击播放按钮时,JavaScript会读取GIF数据,逐帧在Canvas上绘制,实现动画效果。 在实际应用中,这个插件包含以下几个主要...

    GIF转换器将GIF转换为其他格式的图片

    GIF转换器,GIf转化,GIF转换器GIF转换器,GIf转化,GIF转换器GIF转换器,GIf转化,GIF转换器GIF转换器,GIf转化,GIF转换器GIF转换器,GIf转化,GIF转换器GIF转换器,GIf转化,GIF转换器GIF转换器,GIf转化,GIF转换器GIF转换器,...

    GIF图像转换字符

    GIF图像转换 GIF图像转换 GIF GIF图像转换图像转换

    AiltGIFtoWordConverter(GIF转Word工具)v6.5免费安装版

    Ailt GIF to Word Converter是一款功能强大的转换工具。该款工具可认保留原始的布局,和gif文件中的文字。... 支持多种GIF图片版本的转换(批量处理);  对于我们的照片支持光学字符识别功能(OCRA

    Java gif图片转换为jpg格式

    在Java中实现GIF格式图片转换为JPEG格式图片的过程涉及几个关键的Java类和方法,主要包括BufferedImage类、ImageIO类以及相关的图形处理技术。下面详细阐述这些知识点: 首先,BufferedImage类是Java中用于处理图像...

    gif转换png的工具

    标题中的“gif转换png的工具”指的是一个程序或软件,其主要功能是将.gif格式的图像文件转换成.png格式的图像文件。在计算机图形处理领域,这两种格式各有特点:GIF(Graphics Interchange Format)是一种支持动画和...

    GIF swf 转换

    本篇文章将深入探讨"GIF swf 转换"这一主题,解析这两种图像格式的特点,并介绍如何进行有效的转换。 GIF(Graphics Interchange Format)是一种流行的位图图像格式,它支持动画并且具有透明度功能。GIF文件通常...

    Android-gif2png是一个GIF转换PNG的Java程序(转换为一张大图或者连续帧

    在Android开发中,图片加载与展示是至关重要的环节,尤其在处理动态图像时,如GIF格式。然而,由于Android原生系统对GIF支持有限,开发者常常需要寻找合适的方法来处理这种格式的图片。"Android-gif2png"就是一个...

    图片Gif互相转换核心文件-基于Unity5.6.4.zip

    6. **导入和使用**:在Unity中,需要将这些资源导入到Assets目录下,然后在C#脚本中引用Gif.Component.dll,创建相应对象实例,调用其提供的方法进行图片转换。在游戏运行时,这些脚本将负责处理图片的转换工作。 7...

Global site tag (gtag.js) - Google Analytics