我有一个包含大量GIF的页面.
<img src="gif/1303552574110.1.gif" alt="" >
<img src="gif/1302919192204.gif" alt="" >
<img src="gif/1303642234740.gif" alt="" >
<img src="gif/1303822879528.gif" alt="" >
<img src="gif/1303825584512.gif" alt="" >
Run Code Online (Sandbox Code Playgroud)
我正在寻找什么
1页面加载=>停止所有GIF的动画
2在鼠标悬停时=>为该一个gif启动动画
3在mouseout =>动画再次停止该gif
我想这可以在Jquery中完成,但我不知道如何.
在为网站做小图标,标题图形等时,使用GIF还是PNG更好?
显然,如果需要透明效果,那么PNG肯定是要走的路,而对于更大,更多的摄影图像,我会使用JPEG - 但对于普通的网络"家具",你会推荐哪些?为什么?它可能只是我正在使用的工具,但GIF文件通常看起来比可比较的PNG小一点,但使用它们只是1987年.
我最近收到了一封来自Onnit Labs的电子邮件,其中包括使用gif图像在电子邮件内部的倒计时模块计时器.可以在此处查看电子邮件:https://www.onnit.com/emails/lastchance-historic/
图像可以在这里看到:
我调查了一下,看起来你可以继续使用gifsockets向动画GIF发送新帧,因为GIF没有指定它在浏览器中加载时有多少帧.这是在github:http://github.com/videlalvaro/gifsockets
我认为这非常有趣,确实很酷.有没有人对如何实现这一点有任何其他见解?似乎他们在Onnit上使用的那个似乎根据附加在URL或图像末尾的日期来改变倒计时.
onnit.com/emails/_modules/timer/?end=2012-12-27+00:00:00&dark=1
我正在尝试通过电子邮件发送相同的内容,但我有点难过.
有没有办法将动画gif转换为.aviLinux上的视频格式(例如)?
我已经尝试过了
ffmpeg -i thegif.gif thevideo.avi
Run Code Online (Sandbox Code Playgroud)
但我得到的只是视频的第一张图片.
我正在尝试在创建包含大量帧的GIF时修复性能问题.例如,某些GIF可能包含> 1200帧.使用我当前的代码,我的内存不足.我正在试图弄清楚如何解决这个问题; 这可以分批完成吗?我的第一个想法是,是否可以将图像附加在一起,但我认为没有一种方法可以用于ImageIO框架创建GIF或如何创建GIF .如果有一个复数CGImageDestinationAddImages方法但没有,那将是很好的,所以我迷失了如何尝试解决这个问题.我感谢任何提供的帮助.对于冗长的代码提前抱歉,但我觉得有必要逐步创建GIF.
只要视频中可能存在不同的GIF帧延迟,并且录制时间与每帧中所有动画的总和不一样,我就可以制作视频文件而不是GIF.
注意:跳转到下面的最新更新标题以跳过背景故事.
更新1 - 6:使用固定的线程锁定GCD,但内存问题仍然存在.这里不需要100%的CPU利用率,因为我展示了一段UIActivityIndicatorView时间的工作.使用该drawViewHierarchyInRect方法可能比renderInContext方法更有效/更快,但是我发现您不能drawViewHierarchyInRect在后台线程上使用该方法,并将afterScreenUpdates属性设置为YES; 它锁定了线程.
必须有一些方法可以分批编写GIF.我相信我已经将内存问题缩小到:CGImageDestinationFinalize这种方法对于制作具有大量帧的图像来说效率非常低,因为所有内容都必须在内存中写出整个图像.我已经证实了这一点,因为我在抓取渲染的containerView图层图像和调用时使用了很少的内存CGImageDestinationAddImage.我打电话CGImageDestinationFinalize给记忆仪的那一刻立即飙升; 有时最高可达2GB,具体取决于帧数.所需的内存量似乎很疯狂,可以制作~20-1000KB的GIF.
更新2:我发现有一种方法可能会带来一些希望.它是:
CGImageDestinationCopyImageSource(CGImageDestinationRef idst,
CGImageSourceRef isrc, CFDictionaryRef options,CFErrorRef* err)
Run Code Online (Sandbox Code Playgroud)
我的新想法是,对于每10帧或其他任意帧数,我会将它们写入目的地,然后在下一个循环中,先前完成的10帧目标将成为我的新源.但是有一个问题; 阅读文档,它说明了这一点:
Losslessly copies the contents of the image source, 'isrc', to the * destination, 'idst'.
The image data will not be modified. No other images should be added to the image destination.
* CGImageDestinationFinalize() should not be …Run Code Online (Sandbox Code Playgroud) 我正在寻找图像的图像生成器:
我发现的所有例子都是大型的3d.我想要一个小的,我可以使用像ajax这样的东西,同时加载一些页面,传输文件,发送大信息等.
android旋转齿轮齿轮就是一个例子.
然后我可以根据需要显示/隐藏图像.
我想很多人都会解决这个/知道好的解决方案.