手机原本能ipad怎么保存动态图片片

99手机游戏温馨提示:适度游戏娱乐,沉迷游戏伤身,合理安排时间,享受健康生活
玩家交流:① ②GIF图片为什么保存到本地就不动了??_百度知道
GIF图片为什么保存到本地就不动了??
  因为下载下来的格式改变了,所以就动不了。本来动态图片的格式是gif的,但是下载下来图片就会扩展名为Jpg格式。  解决方案:先把图片下载在电脑,手机和电脑各登陆一个Q,用电脑发送动态图片到手机上,手机接收后直接保存即可。把图片下载的时候保存格式修改为gif格式,打开手机相册查看时,下载一个gif图片查看器即可。
其他类似问题
为您推荐:
提问者采纳
是你的图片查看器有问题不是他不动了。你可以点击右键-打开方式-其他打开方式里面选择浏览器打开它就会动的。或者用xp系统本身带的图片查看器也可以
确实,我用IE打开就动了。我是WIN7系统,图片查看器看是不动的,有方法解决么
win7系统的图片查看器确实不动。这个问题我也没办法。你可以选择用ie打开时选择始终用此软件打开。以后打开gif图片的时候自动就用ie打开。网上图片查看器也很多。我喜欢用google的picsa,但是它也打开gif不动
提问者评价
OK,多谢啦 ~
gif图片的相关知识
其他2条回答
下载文件不要下载图片
GIF可以是动态图片,也可以是静态图片。如果你下载的是动态图片才能预览到动画效果。
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁蓝石头-九黎
非常感谢您的回答,不过还是没能解决我的问题,请问,您的电脑是windows xp系统的么
那需要用什么图片查看器打开呢?我之前也这样操作用office picture manager打开来还是不动的
您的举报已经提交成功,我们将尽快处理,谢谢!
直接在动态的图中按鼠标右键,点击复制或者图片另存为,复制你就到要放的文件夹中鼠标右边粘贴,另存为你选好文件夹按确定就行了
您好,不懂的原因是因为预览图的模式,要点开看才行。
大家还关注
(window.slotbydup=window.slotbydup || []).push({
id: '2081942',
container: s,
size: '1000,60',
display: 'inlay-fix'输入关键字或相关内容进行搜索
今天试用了下hello mui上的图片懒加载功能,发现有些地方还无法满足我的需求,ajax动态加载的时候无法实现懒加载。然后又看了下36kr的示例,因为代码关系实在太多了,耦合度比较高,遂自己动手写了一个轻量级的懒加载功能模块,而且支持图片缓存到本地哦~~~欢迎各位拍砖,交流碰撞思想!升级日志\nv1.1.0
1、已增加 @LFZ 的代码,不用重复下载两次服务器端的图片
2、新增图片加载淡入特效
3、新增图片加载完成后回调
4、修改data-src为data-lazyload
功能特性\n~原生实现,不依赖任何前端框架
~ajax动态加载支持图片懒加载
~支持图片缓存到本地
~轻量模块化如何使用\n1、引入md5.min.js,因为依赖js版md5函数,用于将图片url转换为32位md5&script s r c=&md5.min.js&&&/script&
\n2、在头部js包含下面的lazyload方法函数,否则可能报错函数未定义3、HTML代码使用ajax动态生成如下img标签,src为默认图片,data-src填写图片网络地址,并且必须包含onload事件来触发懒加载功能。&img s r c=&placehold.jpg& data-lazyload=&http://...jpg&
onload=&lazyload(this)& /&
\n&注意:因为函数依赖plus.io和plus.downloader接口,所以在plus还没ready的时候img onload执行lazyload可能会报错,lazyload比plus先执行完毕。当然,在真实环境中,不管是商品列表、订单列表等,我们的图片一般都是动态加载的,所以问题不大。
在代码的写法策略上需要使用动态加载方式,尽量不使用写死在html里面。4、添加.img-lazyload 支持图片淡入样式@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}
@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}
.img-lazyload{-webkit-animation: fadeIn 350ms linear 0ms 1animation: fadeIn 350ms linear 0ms 1opacity:1;}
\n5、图片默认缓存到_downloads/image/目录下活动图\n
函数源代码\n/**
* 图片懒加载
* @param {Object}
DOMElement
* @param {Function} callback
加载完成回调函数
* @author fanrong33
* @version 1.1.0 build
function lazyload(obj, callback){
var debug = // 默认打印调试日志
if(obj.getAttribute('data-loaded')){
var image_url = obj.getAttribute('data-lazyload');
debug && console.log(image_url);
// 1. 转换网络图片地址为本地缓存图片路径,判断该图片是否存在本地缓存
// http://...jpg -& md5
// 缓存目录 _downloads/image/(md5).jpg
var image_md5
= md5(image_url);
var local_image_url
= '_downloads/image/'+image_md5+'.jpg'; // 缓存本地图片url
var absolute_image_path = plus.io.convertLocalFileSystemURL(local_image_url); // 平台绝对路径
// new temp_img 用于判断图片文件是否存在
var temp_img = new Image();
temp_img.src = absolute_image_
temp_img.onload = function(){
debug && console.log('存在本地缓存图片文件'+local_image_url+',直接显示');
// 1.1 存在,则直接显示(本地已缓存,不需要淡入动画)
obj.setAttribute('src', absolute_image_path);
obj.setAttribute('data-loaded', true);
obj.classList.add('img-lazyload');
callback && callback();
temp_img.onerror = function(){
debug && console.log('不存在本地缓存图片文件');
// 1.2 下载图片缓存到本地
debug && console.log('开始下载图片'+image_url+' 缓存到本地: '+local_image_url);
function download_img(){
var download_task = plus.downloader.createDownload(image_url, {
filename: local_image_url // filename:下载任务在本地保存的文件路径
}, function(download, status) {
if(status != 200){
// 下载失败,删除本地临时文件
debug && console.log('下载失败,status'+status);
if(local_image_url != null){
plus.io.resolveLocalFileSystemURL(local_image_url, function(entry) {
entry.remove(function(entry) {
debug && console.log(&临时文件删除成功& + local_image_url);
// 重新下载图片
download_img();
}, function(e) {
debug && console.log(&临时文件删除失败& + local_image_url);
// 把下载成功的图片显示
// 将本地URL路径转换成平台绝对路径
obj.setAttribute('src', plus.io.convertLocalFileSystemURL(local_image_url));
obj.setAttribute('data-loaded', true);
obj.classList.add('img-lazyload');
callback && callback();
download_task.start();
download_img();
谢谢分享,早知就用你的了,我还自己写.~~~~(&_&)~~~~
我也有借鉴了下你的代码,互相学习哈:)
确实折腾了我好久..相互学习..相互学习
对了 你那个动画图片怎么做的呢 我也想做个 嘿嘿
顶,好东西~~~支持
我试了下你的方法 想问个问题
联网下载图片你是先设置src为网络地址 加载服务器图片
obj.setAttribute('src', image_url);
obj.setAttribute('data-loaded', true);
// obj.classList.add('img-animation');
接着下载服务器图片
var download_task = plus.downloader.createDownload
这样会不会重复去加载服务器图片了呢
设置src为网络地址 和 downloader下载图 哪个先加载完图呢?
亲 你这个在Android机测试过吗?
我发觉&img&先写到&body&中就会报
Uncaught ReferenceError: lazyload is not defined
如果&img&用js生成加入&body&中就正常 但有时候会不执行onload
还有我发觉下载失败了 没有执行删除文件的方法 log都没有输出~~~~(&_&)~~~~
是重复加载了,如果从请求的角度,最优的方案可能是直接从已经加载的图片设置到canvas,再转存到本地路径下。但是我也有考虑过如果使用canvas的来处理图片的话,担心对性能的影响会比使用线程下载来得大,毕竟两种方式是不一样的,所以最后才使用plus.downloader的方式。当然,我没有测试过,所以还有待考证:)
设置src为网络地址先加载完图片,downloader已经是后面的事情了
Uncaught ReferenceError: lazyload is not defined
你js函数是放在头还是放在尾?要放在头部让它先加载
我放到头的话 虽然执行了 但是会报plus.io...未加载完成的异常...
错误提示是?
var absolute_image_path = plus.io.convertLocalFileSystemURL(local_image_url); // 平台绝对路径
这里抛异常 说的是plus.io未初始化完成
lazyload()这个方法得参考官方写的来改改 得到mui.plusReady之后执行
哈哈,忽略了,看来要改一下
改好 再分享出来 O(∩_∩)O哈哈~ 好期待哇
文章已修改,方法没有修改,具体可以看下文章
同名的网络图片你怎么办?
同名的网络图片,那不就是同一张吗?就只加载一次呀:)
我说的是/1.png
跟 http://1.png 但是 这2个1.png 内容是不一样的
下载就是基于http的,所以这两张图片就是两张不一样的。
var image_url = obj.getAttribute('data-src');
debug && console.log(image_url);
// 1. 转换网络图片地址为本地缓存图片路径,判断该图片是否存在本地缓存
// http://...jpg -& md5
// 缓存目录 _downloads/image/(md5).jpg
var image_md5
= md5(image_url);
var local_image_url
= '_downloads/image/'+image_md5+'.jpg'; // 缓存本地图片url
关于同名图片,我也有一个疑问,比如我要缓存用户头像,图片地址是根据用户ID来的,所以头像的地址可能不变,但头像图片却改变了,类似这种情况的时候,就会判断不更新缓存,导致无法显示新头像???不知道我理解的是否正确呢
所以关于你的头像缓存方案,需要调整下,必须要加入类似时间戳的东西来强制客户端重新缓存
嗯,确实如此,非常感谢,你的分享给了我很大帮助
被自己坑了 我的列表有很多图片 这样plus.downloader.createDownload会创建好多线程 导致手机一下子就发烫了 ... 看来得试试你说的Canvas,
不知道怎么监听和保存图~~~~(&_&)~~~~
大神,原来你已经把最开始的帖子修改优化了好多 兜兜转转又回来看这个贴了
大神们,我想问如果要下载200/300张图片的话,createDownload 这个是怎么操作的?求指导
一次要批量下载300张图片?
就是一次性下载批量图片,看 Downloader 不是很熟悉, 创建一个下载任务 能下载批量图片?还是一个下载任务只能下载一张图片? 不是很懂!拜托了
好像没法一次性下载多张图片,downloader创建的只是个task, 要调用start() 才开始进行下载,所以可以用队列的方式去管理,来控制同步下载数。具体还是要看下api文档
我修改了部分代码,不用重复下载两次服务器端的图片。
```javascript
function lazyload(obj) {
var debug = // 默认打印调试日志
if (obj.getAttribute('data-loaded')) {}
var image_url = obj.getAttribute('data-src');
debug && console.log(image_url);
// 1. 转换网络图片地址为本地缓存图片路径,判断该图片是否存在本地缓存
// http://...jpg -& md5
// 缓存目录 _downloads/image/(md5).jpg
var image_md5 = md5(image_url);
var local_image_url = '_downloads/image/' + image_md5 + '.jpg'; // 缓存本地图片url
var absolute_image_path = plus.io.convertLocalFileSystemURL(local_image_url); // 平台绝对路径
// new temp_img 用于判断图片文件是否存在
var temp_img = new Image();
temp_img.src = absolute_image_
temp_img.onload = function() {
debug && console.log('存在本地缓存图片文件' + local_image_url + ',直接显示');
// 1.1 存在,则直接显示(本地已缓存,不需要淡入动画)
obj.setAttribute('src', absolute_image_path);
obj.setAttribute('data-loaded', true);
temp_img.onerror = function() {
debug && console.log('不存在本地缓存图片文件');
// 1.2 下载图片缓存到本地
debug && console.log('开始下载图片' + image_url + ' 缓存到本地: ' + local_image_url);
function download_img(){
var download_task = plus.downloader.createDownload(image_url, {
filename: local_image_url // filename:下载任务在本地保存的文件路径plus.io.convertLocalFileSystemURL( url );
}, function(download, status) {
if (status != 200) {
// 下载失败,删除本地临时文件
debug && console.log('下载失败,status' + status);
if (local_image_url != null) {
plus.io.resolveLocalFileSystemURL(local_image_url, function(entry) {
entry.remove(function(entry) {
debug && console.log(&临时文件删除成功& + local_image_url);
//从新下载图片
download_img();
}, function(e) {
debug && console.log(&临时文件删除失败& + local_image_url);
//把下载成功的图片显示
//将本地URL路径转换成平台绝对路径
obj.setAttribute('src',plus.io.convertLocalFileSystemURL(local_image_url));
obj.setAttribute('data-loaded', true);
download_task.start();
为什么我把js放头部还是报lazyload is not defined??
都是js大神
为啥还是会报plus is not defined的错误,我参考了楼上LFZ的代码~
要回复文章请先或
发表是最好的记忆

我要回帖

更多关于 苹果怎么保存动态图片 的文章

 

随机推荐