精华内容
下载资源
问答
  • gif合成工具

    2013-05-10 13:45:55
    非常好的gif合成工具,不用安装,可以试试
  • gif合成分离

    2016-09-01 11:42:53
    C# 多张图片合成 gif 分解多张图片
  • 本项目是一个基于gifflen开源库的gif合成工具,项目非常简单。可以合成sd卡下的图片为gif,路径可以自己修改代码,主要是giffen开源库的使用。代码中有详细注释,可供学习参考。项目默认编码UTF-8,变异版本4.4.2 
  • C# 操作gif 合成

    2009-12-05 14:45:48
    C# 操作gif 合成类。把多个jpg/gif/png 合成一个gif文件。
  • 自己写的 GIF 合成代码 自己写的 GIF 合成代码
  • gif合成器-很有用的工具 gif合成器-很有用的工具 gif合成器-很有用的工具 gif合成器-很有用的工具
  • 本项目是一个基于gifflen开源库的gif合成工具,项目非常简单。可以合成sd卡下的图片为gif,路径可以自己修改代码,主要是giffen开源库的使用。代码中有详细注释,可供学习参考。项目默认编码UTF-8,变异版本4.4.2
  • iOS GIF合成有透明通道图片重叠问题

    千次阅读 2017-11-14 00:18:25
    iOS GIF合成有透明通道图片重叠问题 项目中需要用到合成gif, 如果图片含有透明通道, 则会出现重叠现象, 设置 kCGImagePropertyGIFHasGlobalColorMap 为true即可解决

    iOS GIF合成有透明通道图片重叠问题

    项目中需要用到合成gif, 如果图片含有透明通道, 则会出现重叠现象, 设置

    kCGImagePropertyGIFHasGlobalColorMap


    为true即可解决


    下面是设置的代码, 


                NSMutableDictionary *gifProperty = [NSMutableDictionary dictionary];

                [gifProperty setObject:[NSNumber numberWithFloat:frame.frame_delay] forKey:(__bridge id)kCGImagePropertyGIFDelayTime];

                

                float sysVersion = [[[UIDevice currentDevice] systemVersion] floatValue];

                if (sysVersion >= 10.0) {

                    // ios 10以下支持有问题 kCGImagePropertyGIFHasGlobalColorMap

                    [gifProperty setObject:@(true) forKey:(__bridge id)kCGImagePropertyGIFHasGlobalColorMap];

                }

                NSDictionary *frameProperties = @{ (__bridge id)kCGImagePropertyGIFDictionary: gifProperty };

                CGImageRef ref = [frame getImageRef];

                CGImageDestinationAddImage(destination, ref, (CFDictionaryRef)frameProperties);


    展开全文
  • 一个不错的GIF合成工具,初学者使用!把你喜欢的几个图片合在一起!挺有趣!
  • Gif合成分拆图片c#

    2013-01-01 17:59:44
    将几个图片合成gifgif分拆成几个图片。
  • 【android】Gif合成

    千次阅读 2017-06-07 20:18:34
    最近脑子一抽看了一个视频,说是合成Gif,就想玩一玩。事实证明就是脑抽。 上图结构1、找开源的Gif分析的文件。就是上面的结构里的 gif 包下面的四个类。os:根本就没有用到下面两个类。这是我找的,传到csdn上了,...

    最近脑子一抽看了一个视频,说是合成Gif,就想玩一玩。事实证明就是脑抽。

    上图

    这里写图片描述

    结构

    这里写图片描述

    1、找开源的Gif分析的文件。

    就是上面的结构里的 gif 包下面的四个类。os:根本就没有用到下面两个类。

    这是我找的,传到csdn上了,http://download.csdn.net/detail/chandelierr/9862589

    2、上代码

    这是跟着动脑学院的一个视频敲的。存在几个问题

    1. 播放的时候就自己保存了,所以仿佛保存按钮做不了什么。

    2. 有一个方法GifHelper.getGif(),GitHelper代码里没有我自己加上了。

      /**
       * 解码GIF图片
       *
       * @param is
       * @return
       */
      public static GifFrame[] getGif(InputStream is) {
          GifHelper gifHelper = new GifHelper();
          if (GifHelper.STATUS_OK == gifHelper.read(is)) {
              return gifHelper.getFrames();
          }
          return null;
      }
    3. 这代码那个老师没调出来,然后说了将近一个小时的广告,很尴尬。

    package com.chandelier.gitmaker;
    
    public class MainActivity extends AppCompatActivity implements View.OnClickListener, TextWatcher {
    
      //这里随便找了个路径
        File dest = new File("/storage/emulated/0/Tencent/TIMfile_recv/","dest"+Math.random()+".gif");
    
        private static final String TAG = "MainActivity";
        private static final int SELECT_IMAGE = 1;
        public static final int PLAY = 2;
        public static final int MAKEGIFANDPLAY = 3;
    
        String imagePath;
        GifHelper.GifFrame[] frames;
        GifHelper.GifFrame[] copyFrames;
    
    
        private Button select;
        private Button save;
        private EditText input;
        private ImageView gif_loc;
    
        private playThread pT ;
    
      //用于在主线程中播放
        Handler handler = new Handler(){
            @Override
            public void handleMessage(Message msg) {
                switch (msg.what){
                    case PLAY:
                        Bitmap bitmap = (Bitmap)msg.obj;
                        gif_loc.setImageBitmap(bitmap);
                        int time = msg.arg1;
                        handler.postDelayed(pT,time);
                        break;
                    case MAKEGIFANDPLAY:
    
                        if (pT != null){
                            handler.removeCallbacks(pT);
                        }
                        pT = new playThread(copyFrames);
                        pT.start();
                        break;
                }
            }
        };
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            select = (Button)findViewById(R.id.select);
            save = (Button)findViewById(R.id.save);
            input = (EditText)findViewById(R.id.input);
            gif_loc = (ImageView)findViewById(R.id.gif_loc);
    
            select.setOnClickListener(this);
            save.setOnClickListener(this);
            input.addTextChangedListener(this);
        }
    
      //复制、绘画和保存gif
        private void createGif(){
            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
            AnimatedGifEncoder animatedGifEncoder = new AnimatedGifEncoder();
            animatedGifEncoder.start(outputStream);
            animatedGifEncoder.setRepeat(0);
            animatedGifEncoder.setDelay(0);
            for (GifHelper.GifFrame frame:frames){
                Bitmap bitmap = frame.image;
                Bitmap copybitmap = bitmap.copy(Bitmap.Config.RGB_565,true);
                Canvas canvas = new Canvas(copybitmap);
                Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
                paint.setTextSize(20);
                paint.setStyle(Paint.Style.FILL);
                paint.setTypeface(Typeface.DEFAULT_BOLD);
                Rect rect = new Rect();
                String content = TextUtils.isEmpty(input.getText().toString())?"动次大次":input.getText().toString();
                paint.getTextBounds(content,0,content.length(),rect);
                canvas.drawText(content,copybitmap.getWidth()/2-rect.width()/2,copybitmap.getHeight()*0.2f,paint);
                animatedGifEncoder.addFrame(copybitmap);
                animatedGifEncoder.setDelay(frame.delay);
            }
            animatedGifEncoder.finish();
            try {
                FileOutputStream fos = new FileOutputStream(dest);
                outputStream.writeTo(fos);
                outputStream.flush();
                fos.flush();
                outputStream.close();
                fos.close();
                copyFrames = GifHelper.getGif(new FileInputStream(dest));
    
            } catch (IOException e) {
                e.printStackTrace();
            }
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    Toast.makeText(MainActivity.this,"Gif已经生成。保存路径:\n" + dest.getAbsolutePath(),Toast.LENGTH_LONG).show();
                }
            });
        }
    
        @Override
        public void onClick(View v) {
            if (v.getId() == select.getId()){
                Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                startActivityForResult(intent,SELECT_IMAGE);
            }else if (v.getId() == save.getId()){
                new Thread(){
                    @Override
                    public void run() {
                        createGif();
                    }
                }.start();
            }
        }
    
      //将 gif 加载进来
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if (requestCode == SELECT_IMAGE && resultCode == Activity.RESULT_OK && data != null){
                Uri selectedImage = data.getData();
                String[] filePathColumns = {MediaStore.Images.Media.DATA};
                Cursor c = getContentResolver().query(selectedImage, filePathColumns, null, null, null);
                c.moveToFirst();
                int columnIndex = c.getColumnIndex(filePathColumns[0]);
                imagePath = c.getString(columnIndex);
    
                showImage(imagePath);
                try {
                    frames = GifHelper.getGif(new FileInputStream(imagePath));
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                }
    
                c.close();
            }
        }
        private void showImage(String imagePath){
            Bitmap bm = BitmapFactory.decodeFile(imagePath);
            gif_loc.setImageBitmap(bm);
        }
    
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    
    
    
        }
    
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
    
        }
    
        @Override
        public void afterTextChanged(Editable s) {
            new Thread(){
                @Override
                public void run() {
                    createGif();
                    handler.sendEmptyMessage(MAKEGIFANDPLAY);
                }
            }.start();
        }
    
        class playThread extends Thread{
            GifHelper.GifFrame[] frames;
            int frameLength = 0;
            int i = 0;
    
            public playThread(GifHelper.GifFrame[] frames) {
                this.frames = frames;
                frameLength = frames.length;
            }
    
            @Override
            public void run() {
                if (frames == null || frames.length == 0)
                    return;
                if (!frames[i].image.isRecycled()){
                    Bitmap copy = frames[i].image.copy(Bitmap.Config.RGB_565,true);
                    Message msg = new Message();
                    msg.obj = copy;
                    msg.what = PLAY;
                    msg.arg1 = frames[i++].delay;
                    handler.sendMessage(msg);
                }
                i%=frameLength;
            }
        }
    }
    
    展开全文
  • 以下都是一些简单的免费分享的工具 ...下载地址:gif合成工具 文件批量移动工具 主要功能是将指定文件夹及子文件夹里所有文件,复制到新的文件夹下,可以指定是否删除源文件。以下动图演示效果...

    以下都是一些简单的免费分享的工具

     

     

    Gif动图合成工具


    主要功能是扫描指定的文件夹里的所有zip文件,然后提取Zip文件中的图片,并合成一张gif图片,存储到新的路径下,支持设置gif的时间,演示效果如下:

     

    下载地址:gif合成工具

     

    文件批量移动工具


    主要功能是将指定文件夹及子文件夹里所有文件,复制到新的文件夹下,可以指定是否删除源文件。以下动图演示效果。

     

    下载地址:文件批量移动工具.exe

     

     

    文件批量移动工具


    主要功能是将指定目录下所有文件按照数量进行整理,比如设置10,那么就按照每个文件夹10个文件来自动整理

     

    下载地址:文件批量整理工具.exe

     

     

    批量搜索指定文件夹工具


    主要功能是输入多个文件夹目录,系统自动搜索所有目录及其子目录下的所有目录。搜索出输入的的信息的文本

     

    下载地址:文件夹搜索工具.exe

     

    文件后缀批量添加删除工具


    主要功能对指定目录下的所有文件删除后缀或是批量添加后缀,后缀内容可由自己指定。

     

    下载地址:文件后缀批量操作工具.exe

     

    网页图片下载工具


    主要功能对一个网页的txt文本中的特定图片链接进行分析,并下载所有的指定图片。

     

    这个工具对特定网址操作,只提供定制版本。

     

     

    重复文件查找工具


    主要功能对两个目录的文件进行校验,查看是否有重复的文件,判定依据为文件内容是否一致,校验文件的MD5码。并可以勾选是否删除原文件操作。

     

     

    下载地址:重复文件查找工具.exe

     

     

    其他工具


    可以对文件夹。文件中的信息进行提取和统计信息,或是分析文件名称。提供定制的服务。

     

    转载于:https://www.cnblogs.com/dathlin/p/8469767.html

    展开全文
  • localAnimatedGifEncoder.setTransparent(Color.BLACK); localAnimatedGifEncoder.addFrame(rotatedBitmap); 针对AnimatedGifEncoder开源JAVA库。
    localAnimatedGifEncoder.setTransparent(Color.BLACK);
    localAnimatedGifEncoder.addFrame(rotatedBitmap);
    
    
    针对AnimatedGifEncoder开源JAVA库。
    
    
    展开全文
  • JPG/GIF合成和分解

    2011-09-10 22:44:42
    1 多张jpg图合成gif动画 /** * 把多张jpg图片 合成一张 * @param pic String[] 多个jpg文件名 包含路径 * @param newPic String 生成的gif文件名 包含路径 */ private synchronized void jpgToGif...
  • Android合成Gif

    2017-07-13 20:33:53
    去我的博客网站-查看原文本文介绍在 Android 平台下合成 GIF 的方法,查阅资料的过程中发现大致有两种方案。 使用 giflen (一个 C 的合成 gif 的库) 进行 gif 合成。 使用 java 层的 GifEncoder、LZWEncoder、...
  • gif_合成分解工具 gif_合成分解工具 gif_合成分解工具 gif_合成分解工具
  • 平时聊天或者上网的时候都能看到许多动态图片,非常的好玩有趣,大家一定很好奇gif动态图片是怎么制作的吧!...2、进入GIF合成页面,点击上传图片按钮即可将本地图片上传至压缩图网站,这里支持GIF、PNG、J
  • GIF图片合成制作

    2017-04-23 11:21:09
    GIF图片合成制作
  • ios gif图片合成

    2017-03-17 16:19:00
    ios 通过单帧图片合成gif图片
  • 有一些gif可以通过截取视频、电影等来记录精彩片段,另一种制作gif动图的方法就是通过gif合成(https://www.yasuotu.com/gifhecheng)工具来在线制作gif动图,例如把很多风景静态图片合成一张gif来作为宣传,可以给...
  • java 合成 gif

    2014-11-05 16:23:11
    用java代码来将JPG等格式合成gif 网上搜集的,分享给大家 用java代码来将JPG等格式合成gif 网上搜集的,分享给大家
  • 接下来给大家分享一款在线gif合成(https://www.gif.cn/gifhecheng)的工具,可以使用图片合成gif功能,将多张图片合成为一张动图的制作方法,希望对想要制作gif格式图片的小伙伴们有一定的帮助,操作步骤如下。...
  • 如何快速的将多张gif合成一张呢?下面,小编为大家介绍一款在线合成照片(https://www.yasuotu.com/gifhecheng)工具,非常的简单容易操作,具体的操作步骤如下: 1、打开压缩图网站,鼠标放至所有功能,点击多图...
  • gif合成/拆分

    2015-08-04 15:48:07
    根据多张图片,合成gif图,也可以对gif图进行拆分。
  • 我们在浏览网页的时候看到许多用照片合成gif动图非常的有趣,当我们想要将电脑中的一些图片做成相同类型的动图的时候,应该怎样将多张图片合成gif呢?接下来,小编为大家推荐一款简单实用的合成图片的工具...
  • gif图片编辑合成工具

    2011-08-11 11:29:06
    gif图片编辑合成工具 gif图片编辑合成工具

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 711
精华内容 284
关键字:

gif合成