精华内容
下载资源
问答
  • 10张gif图片循环显示!适合刚接触android的
  • iOS 获取gif图片循环次数和时长

    千次阅读 2018-02-06 10:36:26
    //获取gif图片的总时长和循环次数 - (NSTimeInterval)durationForGifData:(NSData *)data{ //将GIF图片转换成对应的图片源 CGImageSourceRef gifSource = CGImageSourceCreateWithData((__bridge CFDataRef)data,...
    //获取gif图片的总时长和循环次数
    - (NSTimeInterval)durationForGifData:(NSData *)data{ 
        //将GIF图片转换成对应的图片源
        CGImageSourceRef gifSource = CGImageSourceCreateWithData((__bridge CFDataRef)data, NULL);
        //获取其中图片源个数,即由多少帧图片组成
        size_t frameCout = CGImageSourceGetCount(gifSource);
        //定义数组存储拆分出来的图片
        NSMutableArray* frames = [[NSMutableArray alloc] init];
        NSTimeInterval totalDuration = 0;
        for (size_t i=0; i<frameCout; i++) {
            //从GIF图片中取出源图片
            CGImageRef imageRef = CGImageSourceCreateImageAtIndex(gifSource, i, NULL);
            //将图片源转换成UIimageView能使用的图片源
            UIImage* imageName = [UIImage imageWithCGImage:imageRef];
            //将图片加入数组中
            [frames addObject:imageName];
            NSTimeInterval duration = [self gifImageDeleyTime:gifSource index:i];
            totalDuration += duration;
            CGImageRelease(imageRef);
        }
    
       //获取循环次数   
        NSInteger loopCount;//循环次数
        CFDictionaryRef properties = CGImageSourceCopyProperties(gifSource, NULL);
        if (properties) {
            CFDictionaryRef gif = CFDictionaryGetValue(properties, kCGImagePropertyGIFDictionary);
            if (gif) {
                CFTypeRef loop = CFDictionaryGetValue(gif, kCGImagePropertyGIFLoopCount);
                if (loop) {
             //如果loop == NULL,表示不循环播放,当loopCount  == 0时,表示无限循环;
               CFNumberGetValue(loop, kCFNumberNSIntegerType, &loopCount)
          };
            }
        }
    
        CFRelease(gifSource);
        return totalDuration;
    }
    

    循环次数的键:kCGImagePropertyGIFLoopCount
    无限循环播放.png

    不循环播放.png

    时间间隔的键:kCGImagePropertyGIFUnclampedDelayTime
    每一帧时间间隔.png

     //获取GIF图片每帧的时长
    - (NSTimeInterval)gifImageDeleyTime:(CGImageSourceRef)imageSource index:(NSInteger)index {
        NSTimeInterval duration = 0;
        CFDictionaryRef imageProperties = CGImageSourceCopyPropertiesAtIndex(imageSource, index, NULL);
        if (imageProperties) {
            CFDictionaryRef gifProperties;
            BOOL result = CFDictionaryGetValueIfPresent(imageProperties, kCGImagePropertyGIFDictionary, (const void **)&gifProperties);
            if (result) {
                const void *durationValue;
                if (CFDictionaryGetValueIfPresent(gifProperties, kCGImagePropertyGIFUnclampedDelayTime, &durationValue)) {
                    duration = [(__bridge NSNumber *)durationValue doubleValue];
                    if (duration < 0) {
                        if (CFDictionaryGetValueIfPresent(gifProperties, kCGImagePropertyGIFDelayTime, &durationValue)) {
                            duration = [(__bridge NSNumber *)durationValue doubleValue];
                        }
                    }
                }
            }
        }
    
        return duration;
    }
    展开全文
  • 模仿微博信息列表动态循环展示gif动图. 支持图片弹出和隐藏动画。-- Support the show and hide animation effects支持图片无限循环展示。-- Support infinite scroll to show photos.支持双击...

    DJPhotoBrowser

    DJPhotoBrowser是一个简单的图片浏览器,可以无限循环展示图片,并制作了九宫格图片展示.
    模仿微博信息列表动态循环展示gif动图.

    • 支持图片弹出和隐藏动画。
      -- Support the show and hide animation effects
    • 支持图片无限循环展示。
      -- Support infinite scroll to show photos.
    • 支持双击缩放,手势缩放,可设置缩放比例。
      -- Supports double-click scaling, gestures to zoom in.
    • 支持图片存储。
      -- Support photo storage.
    • 支持网络加载gif图片,长图滚动浏览。
      -- Support network loading GIF images, scroll through long figure.
    • 支持横竖屏显示。
      -- Support for landscape and vertical screen display switch.

    Screenshots

    九宫格图片展示
    image

    图片缩放移动
    image

    模仿微博 动态循环展示gif动图
    image

    Requirements

    • iOS 8.0 or later
    • Xcode 8.0 or later

    Installation

    1. You should copy all the files in path 'DJPhotoBrowser' to your projects;

    2. Add under lines to your class:

    #import "DJPhotoBrowser.h"
    #import "DJPhotoGridView.h"
    1. Need SDWebImage

    Licenses

    All source code is licensed under the MIT License.

    Architecture

    DJPhotoBrowser

    • DJPhotoBrowser
    • DJPhotoBrowserView
    • DJWaitingView

    DJPhotoGridView

    • DJPhotoGridView
    • DJPhotoItem

    Usage

    注意,如果使用SDWebImage下载图片请自行添加以下代码

    // 如果想要新版本SDWebImage支持gif动画显示,需要加载GIFCoder
    [[SDWebImageCodersManager sharedInstance] addCoder:[SDWebImageGIFCoder sharedCoder]];

    DJPhotoBrowser

    DJPhotoBrowser *browser = [[DJPhotoBrowser alloc] init];
    // 原图的父控件,用于显示隐藏图片动画展示,也可通过dataSource设置
    browser.sourceImagesContainerView = self;
    browser.dataSource = self;
    browser.delegate = self;
    // 无限滚动,请在showWithImageCount前设置,代码未完善,如果后置设置会出错误并不支持重新设置
    browser.infiniteScrollView = YES;
    [browser showWithImageCount:self.photoItemArray.count imageIndex:button.tag];

    DJPhotoBrowserDataSource

    // 预览图片
    - (UIImage *)photoBrowser:(DJPhotoBrowser *)browser placeholderImageForIndex:(NSUInteger)index;
    
    // 原图片控件映射到PhotoBrowser的坐标,需要在delegate中做convertRect
    - (CGRect)photoBrowser:(DJPhotoBrowser *)browser containerViewRectAtIndex:(NSUInteger)index;
    
    // 高清图片URL
    - (NSURL *)photoBrowser:(DJPhotoBrowser *)browser highQualityImageURLForIndex:(NSUInteger)index;

    DJPhotoBrowserDelegate

    // 图片滚动
    - (void)photoBrowser:(DJPhotoBrowser *)browser didScrollToIndex:(NSUInteger)index;

    DJPhotoGridView

    DJPhotoGridView *photoGroup = [[DJPhotoGridView alloc] init];
    photoGroup.frame = CGRectMake(10, 10, 100, 100);
    photoGroup.tag = 100;
    [cell.contentView addSubview:photoGroup];
    
    photoGroup.photoItemArray = [self.tableDataArray objectAtIndex:indexPath.row];

    photoGridViewSizeWith

    // DJPhotoGridView高度计算
    + (CGSize)photoGridViewSizeWith:(NSArray<DJPhotoItem *> *)photoItemArray;

    Author

    展开全文
  • 网页GIF图片循环播放解决方案

    千次阅读 2019-02-26 15:24:57
    Photoshop中打开GIF图,打开时间轴看到左下角循环为1次 文件&gt;&gt;存储为Web所用格式,或使用快捷键alt+ctrl+shift+s 动画循环次数选择”永远”,存储 保存完成后嵌入网页就可以看到效果啦 ...

    需求

    在网页中使用img标签嵌入gif动态图时会遇到只播放一次就停止的情况,
    只需要在 photoshop 中对图进行一些简单的修改,保存即可;


    Photoshop中打开GIF图,打开时间轴看到左下角循环为1次

    文件>>存储为Web所用格式,或使用快捷键alt+ctrl+shift+s

    动画循环次数选择”永远”,存储


    保存完成后嵌入网页就可以看到效果啦
    展开全文
  • Excel VBA循环绘制GIF图片到文件

    千次阅读 2014-09-18 09:40:13
    从数据库里用Hive导出了30000+行的数据,每天31或32个点,要画每天的折线图。 其实用R也可以实现,只不过数据在Excel里,干脆... ) else echo 不存在名称为 %%i.gif图片 ) echo 共处理%num%个文件 pause

    从数据库里用Hive导出了30000+行的数据,每天31或32个点,要画每天的折线图。

    其实用R也可以实现,只不过数据在Excel里,干脆就写了一段VBA。


    Sub PicOutput()
        Dim i As Long
        Dim dayCount As Integer
        Dim pointid As String
        Dim iCount(32) As Long
        
        On Error GoTo ExitThis
        
        i = 2
        dayCount = 0
        
        pointid = Sheets(1).Cells(i, 1).Value
        iCount(dayCount) = i
        dayCount = dayCount + 1
        
        For i = 3 To 32923
            If i < 32923 And Sheets(1).Cells(i, 1).Value Like pointid Then
                iCount(dayCount) = i
                dayCount = dayCount + 1
            Else             '画图
                Dim myChart As Chart
                Set myChart = ActiveSheet.Shapes.AddChart.Chart
                With myChart
                    .ChartType = xlLine
                    .HasTitle = True
                    .ChartTitle.Caption = pointid
                    .SetSourceData Source:=Worksheets("CuiI_all").Range("B" & CStr(iCount(1)) & ":C" & CStr(iCount(dayCount - 2)))
                End With
                Dim myPicName As String
                myPicName = "D:\Norris\DeteriorationAnalysis\Hive\Picture\" & pointid & ".gif"
                myChart.Export myPicName, "JPG"
                Sheets(1).ChartObjects.Delete
                
                'Exit Sub
                dayCount = 0
                pointid = Sheets(1).Cells(i, 1).Value
                iCount(dayCount) = i
                dayCount = dayCount + 1
            End If   
        Next
    ExitThis:
    
    End Sub


    输出结果





    然后写了一段批处理做了一下筛选

    @echo off
    REM Select picture from picturePruned to picturePrunedSelected.
    
    set num=0
    for /f %%i in (select.txt) do (
        if exist D:\Norris\DeteriorationAnalysis\Hive\pictureOrigin\%%i.gif (
            REM dir /a-d /b D:\Norris\DeteriorationAnalysis\Hive\pictureOrigin
            set /a num+=1
            copy D:\Norris\DeteriorationAnalysis\Hive\pictureOrigin\%%i.gif D:\Norris\DeteriorationAnalysis\Hive\pictureSelected >nul
        ) else echo 不存在名称为 %%i.gif 的图片
    )
    echo 共处理%num%个文件
    pause


    展开全文
  • WPF中有一个MediaElement媒体控件,可以来播放媒体,同时也可以显示GIF图片。但看到网上有些人说用MediaElement不能加载作为资源或内嵌的资源的GIF图片,我猜他们一定是在前台用XAML来使用MediaElement,而我在这里...
  • gif动态图已经是很常见的了,想必...有的gif图片只会播放一次然后就停止了,而有的能一直循环播放,今天的操作就是让我们自己来控制gif图片的播放次数。效果对比:先还是双击运行今天所用到的软件,运行之后会弹出...
  • 文章目录 前言 I、压缩数据 1.1 图片压缩 1.2 gzip compressed data for iOS (Gzip压缩数据) II 、获取gif图片循环次数和时长 III、根据图像数据第一个字节来判断图像格式 IV 、动态替换app启动图 4.1 应用启动时...
  • python制作循环gif

    2020-05-11 17:37:08
    # coding=utf-8 import sys ...def make_gif(sf, ef, src, outfile): imgs = [] for i in range(sf, ef + 1): pic_name = src % i temp = Image.open(pic_name) imgs.append(temp) #imgs[0].s..
  • 主要改进: 在原有的代码基础上加入了网络图片的显示。 源码地址 ...我个人是比较喜欢逛贴吧的,贴吧里总是会有很多搞笑的动态图片,经常看一看就会感觉欢乐很多,可以释放掉不少平时的压力...一般动态图片都是GIF
  • Android GIF图片显示

    千次阅读 2018-10-12 14:39:47
    在Android开发中,对于.gif格式的动态图片,如果使用ImageView(setImageBitmap、setImageDrawable、setImageResource等)显示gif图片是没有动态效果,只能显示静态图片。 在需要显示gif图片中,推荐以下两种显示...
  • 制作gif图片

    2014-02-14 10:52:22
    虽然曾经被认为是过时的艺术形式,但动态GIF图片现在复苏了。如果你还没有留意到,不少在线分享和社交网络网站都开始支持动态GIF图片,例如,Tumblr,Flickr,Google+和Facebook的部分地方。由于在消费和共享上的...
  • iOS 播放gif图片

    2017-06-22 14:38:02
    不用任何第三方实现播放GIF图功能,可以单次播放,也可循环播放。如果用SDWebImage在网上下载下来的GIF图是循环播放的,如果需要指定比方次数,本篇一定对你有所帮助
  • 大家看到这张图没有,你下载到本地后查看的时候就依然会一直循环,但是你放在网页上就会定格最后一帧。 ps导出在这里。 今天还误会我们实习生嘞,哈哈,简单介绍下这位实习生是位某知名中学高二的学生,因为爱好...
  • C#开发:创建gif图片

    2020-01-07 08:58:15
    将几张或多张图片合并在一起,生成gif图片,显示成动画的形式,网络上有现成的工具,这里分享一个开源的C#版,能方便在系统开发中使用,以代码的形式,生成gif图片,并能够将gif图片,分割成一张张的图片。...
  • iOS中GIF图片的解析+合成

    千次阅读 2016-01-20 20:39:50
    首先iOS中对GIF图片的解析必须要用到的类库有:MobileCoreServices.framework 和ImageIO.framework ,在你的项目中添加这两个库,然后导入头文件。文章主要讲到GIF图片的拆解,合成,包括在GIF图片上添加文字 主体...
  • 简介FLAnimatedImage 是 Flipboard 团队开发的在它们 App 中渲染 GIF 图片使用的库。 后来 Flipboard 将 FLAnimatedImage 开源出来供大家使用。本文章主要是介绍FLAnimatedImage框架的GIF动画加载和播放流程,旨在...
  • 实现GIF图片的缩放

    2019-09-15 22:12:35
    在图片选择器中提到gif文件是使用了普通的ImageView来实现的,如果需要实现gif图片的缩放那么就需要自定义SSIV。 首先需要GIF解码器,可以选择使用glide的gif decoder,也可以使用原版的...
  • 网上查找资料发现,openlayers不支持gif图片样式。 后面采用overlay的方式,gif图片赋值给DOM元素 解决方案: 1、单个点 先在地图容器里新增一个id为marks的<div>标签 /*加载gif图片格式*/ function ...
  • 最近想做个gif在线制作的网站,所以研究下了imagemagick和graphicsmagick制作gif图片 站已经做出来了:有兴趣的朋友可以先看看 http://www.sosogif.com/make_online.jsp
  • giflib解码gif图片

    千次阅读 2014-06-11 16:54:08
    图像解码之三——giflib解码gif图片 前面已经介绍过了libjpeg解码jpeg图片和libpng解码png图片,本文将会介绍怎样用giflib解码gif图片。giflib可以在这里下载。 gif文件格式简单介绍  在解码jpeg图片和png...
  • 1. 免费开源的GIF录制工具ScreenToGif 官网地址:http://www.screentogif.com/ ScreenToGif,国外免费开源小巧实用的Gif动画录制工具!使用ScreenToGif, 可以将屏幕任何区域及操作过程录制成GIF格式的动画图像,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,973
精华内容 13,589
关键字:

循环gif图片