精华内容
下载资源
问答
  • 主要介绍了Android通过Movie展示Gif格式图片的相关资料,需要的朋友可以参考下
  • 主要介绍了android播放gif格式图片的方法,大家参考使用吧
  • 应用Matlab软件实现“视频转换成gif格式图片
  • Fresco显示JPG格式和GIF格式图片(AS)
  • Fresco加载GIF格式图片和JPG格式(AS)
  • gif格式的图片制作 可以制作旗帜般飘动的gif格式图片
  • Android显示gif格式图片

    千次阅读 2013-08-07 13:41:09
    大家知道,在Android中使用ImageView来显示gif格式的图片,我们无法得到gif格式图片该有的效果,它只会停在第一帧上,而不会继续。这时只能看到一张静态的图片,这里我们可以使用个简单的方法,即是使用Movie来显示...

    大家知道,在Android中使用ImageView来显示gif格式的图片,我们无法得到gif格式图片该有的效果,它只会停在第一帧上,而不会继续。这时只能看到一张静态的图片,这里我们可以使用个简单的方法,即是使用Movie来显示图片。

    1.在main.xml中添加ImageView,指定一张GIF图片为背景;

    2.MainActivity.java

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    package  com.yin.displayGIF;
     
    import  android.app.Activity;
    import  android.content.Context;
    import  android.graphics.Canvas;
    import  android.graphics.Movie;
    import  android.os.Bundle;
    import  android.view.View;
     
    public  class  MainActivity  extends  Activity {
         private  MyCustomView mView;
         private  Movie mMovie;
         private  long  mMovieStart;
     
         public  void  onCreate(Bundle savedInstanceState) {
             super .onCreate(savedInstanceState);
             mView =  new  MyCustomView( this );
             setContentView(mView);
         }
     
         // 自定义一个类,继承View
         class  MyCustomView  extends  View {
             public  MyCustomView(Context context) {
                 super (context);
                 // 以文件流的方式读取文件
                 mMovie = Movie.decodeStream(getResources().openRawResource(
                         R.drawable.my_picture));
             }
     
             @Override
             protected  void  onDraw(Canvas canvas) {
                 long  curTime = android.os.SystemClock.uptimeMillis();
                 // 第一次播放
                 if  (mMovieStart ==  0 ) {
                     mMovieStart = curTime;
                 }
     
                 if  (mMovie !=  null ) {
                     int  duration = mMovie.duration();
     
                     int  relTime = ( int ) ((curTime - mMovieStart) % duration);
                     mMovie.setTime(relTime);
                     mMovie.draw(canvas,  0 0 );
     
                     // 强制重绘
                     invalidate();
                 }
                 super .onDraw(canvas);
             }
         }
    }

    展开全文
  • Android开源框架中GIF格式图片加载模块的应用与移植.pdf
  • GIF格式图片提取方法(VB代码) 使用GifPlayer.ocx结合BitBlt函数实现。
  • 本代码包解决了在Android4.3中MMS模块中添加幻灯片附件,在预览幻灯片的时候,gif格式图片不能够正常播放
  • 最近在处理验证码破解问题,发现自己使用的百度文字识别不支持有些格式图片,比如GIF。 2.解决措施 使用OpenCV的VideoCapture方法,得到图片的一帧,然后保存该帧图片。 3.代码 import numpy as np import cv...

    1.背景

    最近在处理验证码破解问题,发现自己使用的百度文字识别不支持有些格式的图片,比如GIF。

    2.解决措施

    使用OpenCV的VideoCapture方法,得到图片的一帧,然后保存该帧图片。

    3.代码

    import numpy as np
    import cv2 as cv
    
    
    gif = cv.VideoCapture('image.gif')
    ret, frame = gif.read()
    cv.imwrite('image.jpeg', frame)
    

     

    展开全文
  • 教大家在CSDN里面上传GIF格式图片

    千次阅读 2014-01-06 14:47:09
    教大家在CSDN里面上传GIF格式图片

    好像之前的csdn是可以复制或上传gif图片的,但是现在即使上传进来也是静态的图片,不是动态的,后来经过处理后还是可以做到的,大家可以学习下,而且不是很麻烦。

    首先下载这个gif录制的软件,我用的是这个gif录制工具,个人感觉很好用,我已经破解了,后面我会把破解的软件打包。


    F2是录制和结束录制的快捷键,我们打开软件录制的地址


    然后打开博客园新建随笔,点击上传图片,上传刚才录制的图片,然后用快捷键复制下来到csdn博客编辑内容里面即可。


    展开全文
  • 那我们要用动画类型图片gif格式图片应该怎么办呢?我们可以使用android-gif-drawable框架来实现gif图片加载,下面直接贴下我在项目中用到的工具类: public class GifLoader { /**保存图片引用的Map*/ public ...

          在android项目中,最学用的是png格式的图片,或者用jpeg的图片。那我们要用动画类型图片gif格式图片应该怎么办呢?我们可以使用android-gif-drawable框架来实现gif图片加载,下面直接贴下我在项目中用到的工具类:

    public class GifLoader {
    /**保存图片引用的Map*/
    public static Map<ImageView, String> mImageViewMap = Collections.synchronizedMap(new HashMap<ImageView, String>());
    private ExecutorService executorService;
    /**缓存大小10MiB*/
    private static int mMemCacheMaxSize = 10 * 1024 * 1024;
    /**LruCache缓存图片*/
    private static LruCache<String, byte[]> mMemLruCache;
    /**版本号*/
    private static int mAppVersion = 1;
    /**硬盘缓存50M*/
    private static int mDiskCacheMaxSize = 50 * 1024 * 1024;
    /**硬盘缓存对象*/
    private static DiskLruCache mDiskLruCache;
    /**是否要初始化*/
    private static boolean mCacheInit = false;
    private static final int DISK_CACHE_COUNT = 1;
    /**GifLoader对象*/
    private static GifLoader loader;
    /**默认一张图片的id*/
    final int default_image_id = R.drawable.icon_app_normal;


    /**构造对象*/
    private GifLoader(Context context) {
    executorService = Executors.newFixedThreadPool(2);
    initCaches(context);
    }


    /**单例模式*/
    public synchronized static GifLoader getInstance(Context context) {
    if (loader == null) {
    loader = new GifLoader(context);
    }
    return loader;
    }


    /**在控件上展示图片*/
    public void displayImage(String url, GifImageView imageView, boolean isGif) {
    try {
    if (new File(url).exists()) {
    imageView.setImageDrawable(new GifDrawable(url));
    return;
    }
    }
    catch (Exception e) {
    }


    mImageViewMap.put(imageView, url);
    byte[] data = mMemLruCache.get(url);
    if (data != null) {
    try {
    imageView.setImageDrawable(new GifDrawable(data));
    }
    catch (Exception e) {
    e.printStackTrace();
    imageView.setImageResource(default_image_id);
    }
    }
    else {
    queuePhoto(url, imageView);
    imageView.setImageResource(default_image_id);
    }


    }


    private void queuePhoto(String url, GifImageView imageView) {
    PhotoToLoad photoToLoad = new PhotoToLoad(url, imageView);
    executorService.submit(new PhotosLoader(photoToLoad));
    }


    /**此方法待优化以防止内存溢出 先从文件里面读取,没有的话再到网上下载*/
    private byte[] getBitmap(String url) {
    Snapshot cacheEntry = null;
    try {
    cacheEntry = mDiskLruCache.get(CacheHelper.UriToDiskLruCacheString(url));
    }
    catch (Exception e) {
    e.printStackTrace();
    }


    byte[] image = null;


    if (cacheEntry != null) {
    image = inputStreamToByteArray(cacheEntry.getInputStream(0), (int) cacheEntry.getLength(0));
    mMemLruCache.put(url, image);
    }
    try {
    if (image != null) {


    return image;
    }
    else {
    URL imageUrl = new URL(url);
    HttpURLConnection con = (HttpURLConnection) imageUrl.openConnection();
    con.setConnectTimeout(30000);
    con.setReadTimeout(30000);
    con.setInstanceFollowRedirects(true);
    InputStream is = con.getInputStream();
    image = inputStreamToByteArray(is, 8096);
    if (image != null) {


    try {
    Editor editor = mDiskLruCache.edit(CacheHelper.UriToDiskLruCacheString(url));
    if (editor != null) {
    if (CacheHelper.writeByteArrayToEditor(image, editor)) {
    mDiskLruCache.flush();
    editor.commit();
    }
    else {
    editor.abort();
    }
    }
    }
    catch (Exception e) {
    e.printStackTrace();
    }


    mMemLruCache.put(url, image);
    }
    }


    }
    catch (FileNotFoundException e) {
    e.printStackTrace();
    }
    catch (MalformedURLException e) {
    e.printStackTrace();
    }
    catch (IOException e) {
    e.printStackTrace();
    }


    return image;
    }


    private class PhotosLoader implements Runnable {
    private PhotoToLoad photoToLoad;


    public PhotosLoader(PhotoToLoad photoToLoad) {
    super();
    this.photoToLoad = photoToLoad;
    }


    @Override
    public void run() {
    /**下载前检查imageview是否被复用*/
    if (imageViewReused(photoToLoad)) { return; }
    byte[] bm = getBitmap(photoToLoad.url);


    /**下载完毕后再次检查imageview是否被复用*/
    if (imageViewReused(photoToLoad)) { return; }
    DisplayImageRunnable displayImageRunnable = new DisplayImageRunnable(bm, photoToLoad);
    Activity a = (Activity) photoToLoad.imageView.getContext();
    a.runOnUiThread(displayImageRunnable);


    }


    }


    boolean imageViewReused(PhotoToLoad photoToLoad) {
    String tag = mImageViewMap.get(photoToLoad.imageView);
    /**代表imageviews map中存放的imageview对应的value值已经被覆盖掉,也就是重用了*/
    if (tag == null || !tag.equals(photoToLoad.url)) {
    return true;
    }
    else {
    return false;
    }


    }


    private class DisplayImageRunnable implements Runnable {
    private byte[] data;
    private PhotoToLoad photoToLoad;


    public DisplayImageRunnable(byte[] data, PhotoToLoad photoToLoad) {
    super();
    this.data = data;
    this.photoToLoad = photoToLoad;
    }


    @Override
    public void run() {
    if (imageViewReused(photoToLoad)) { return; }
    if (data != null) {
    try {
    photoToLoad.imageView.setImageDrawable(new GifDrawable(data));
    }
    catch (Exception e) {
    e.printStackTrace();
    photoToLoad.imageView.setImageResource(default_image_id);
    }
    }
    else {
    photoToLoad.imageView.setImageResource(default_image_id);
    }


    }
    }


    private class PhotoToLoad {
    public String url;
    public GifImageView imageView;


    public PhotoToLoad(String url, GifImageView imageView) {
    super();
    this.url = url;
    this.imageView = imageView;
    }


    }


    private void initCaches(Context context) {
    if (!mCacheInit) {
    mMemLruCache = new LruCache<String, byte[]>(mMemCacheMaxSize) {
    protected int sizeOf(String key, byte[] value) {
    return value.length;
    }
    };
    File diskCacheDir = CacheHelper.getDiskCacheDir(context, "imagecache");
    try {
    mDiskLruCache = DiskLruCache.open(diskCacheDir, mAppVersion, DISK_CACHE_COUNT, mDiskCacheMaxSize);
    }
    catch (IOException ignored) {
    }
    mCacheInit = true;
    }
    }


    private byte[] inputStreamToByteArray(InputStream is, int size) {
    ByteArrayOutputStream byteBuffer = new ByteArrayOutputStream();
    byte[] buffer = new byte[size];


    int len = 0;
    try {
    while ((len = is.read(buffer)) != -1) {
    byteBuffer.write(buffer, 0, len);
    }
    }
    catch (IOException e) {
    e.printStackTrace();
    }


    buffer = byteBuffer.toByteArray();
    return buffer;
    }
    }

    展开全文
  • android中gif格式图片的显示

    热门讨论 2010-06-08 14:57:06
    用来显示gif格式图片,实现其 播放,由于android没有显示gif图片的控件
  • gif格式图片加文字

    2011-05-04 17:11:59
    gif格式水印,在网上找的很多代码都是不全的,缺少dll就是这个文件里的,这个也是网上找到的,放到这里主要和大家共享,顺便赚点下载分。 进过测试,打水印之后gif完全不影响。但是大小会增加,72k的增加值112k。
  • gif格式图片制作工具

    2011-06-07 16:43:17
    gif动画的制作工具,支持对每张图片的动态修改
  • gif 格式图片详细解析

    万次阅读 2018-01-21 20:01:36
    ~~~~~~~~ GIF(Graphics Interchange Format,图形交换格式)文件是由 CompuServe公司开发的图形文件格式,版权所有,任何商业目的使用均须 CompuServe公司授权。  GIF图象是基于颜色列表的(存储的数据是该点的颜色...
  • 实现jpeg,bmp,gif格式图片打开,移动放大缩小
  • Android基础篇之显示GIF格式图片

    千次阅读 2011-05-25 23:30:00
    Android基础篇之显示GIF格式图片 2011-05-25 23:20:17  大家都知道,如果我们在Android中用ImageView直接显示GIF的图片,图片只会停在第一帧上,而不会继续。这时看到的只是一张静态的图片,没有...
  • MFC对话框中显示gif格式图片

    热门讨论 2011-10-28 21:59:35
    MFC基于对话框的应用程序中,应用一个CPictureEx类来显示一个gif动画。这个类可以轻松应用到其他程序中,可移植性很高。
  • 软件名称:Ulead GIF Animator 最新版本:5.0 软件授权:商业软件 使用平台:Win95/98/NT/Me/... GIF 文件,而且还能将动画 GIF 图片最佳化,能将你放在网页上的动画 GIF 图 档减肥,以便让人能够更快速的浏览网页。
  • gif格式图片的解析

    千次阅读 2016-07-14 18:48:21
    GIF(Graphics Interchange Format,图形交换格式)文件是由 CompuServe公司开发的图形文件格式,版权所有,任何商业目的使用均须 CompuServe公司授权。 GIF文件内部是按块划分的,包括控制块( Control Block )和...
  • iOS中JPG PNG GIF格式图片的区分

    千次阅读 2016-03-25 10:46:32
    很多时候我们从网络上下载或者本地的图片有很多格式,那么我们如何在程序中对这些格式...JPG格式开头为FF PNG格式开头为89 GIF格式开头为47 JPG格式 PNG格式 GIF格式 SDWebImage中是这么处理的
  • 动画自由缩放大小,一般动画缩放改动,失去动态,而本软件保持原汁原味。
  • vs2010中正确加载gif格式图片

    千次阅读 2013-05-16 14:46:27
    实现方法如下: 一.... 无论是在VC6.0还是在VS2010中,都没有自带控件能显示GIF动画图片。能显示一些静态图片的只是Picture控件。本例程用到的GIF动画显示控件类是 PictureEX。其定义文件是 Pict
  • 利用JDK原生支持对png jpg gif格式图片做相互转换,结合脚本就可以达到批量处理的能力,比PS来的快啊!而且是JAVA代码 在Windows和Linux上都可以用。import java.awt.image.BufferedImage; import java.io.File; ...
  • VC中使用GIF格式图片美化界面

    千次阅读 2007-01-25 16:43:00
    VC中使用GIF格式图片美化界面 在VC中最方便使用的是BITMAP,即位图格式,但是位图往往不能达到所需的效果,这里介绍一种方法使用GIF来美化界面. 主要分为以下几个步骤:1. 将 gif 的图像载入,用CImage2. 通过CImage...
  • 转自CodeProject. ...非常简单好用的图片显示类,包含并添加到工程以后,使用起来很方便,VC6下亲测可用,图片格式支持jpg,gif动图等。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 125,283
精华内容 50,113
关键字:

gif格式图片