触发图像点击事件时,如何将图像保存到手机内存(例如 SD 卡或本地硬盘驱动器)?

Posted

技术标签:

【中文标题】触发图像点击事件时,如何将图像保存到手机内存(例如 SD 卡或本地硬盘驱动器)?【英文标题】:How save image to phone memory say SD card or local hard drive when a image tap event is fired? 【发布时间】:2013-04-02 05:20:54 【问题描述】:

我有一张图像,我在使用 Sencha Architect 2 的图像视图的帮助下显示它。我能够在图像上获得一个点击事件。但是我不知道点击图像时如何将图像保存到手机。 我对此进行了 Google 搜索,但找不到合适的文档或示例。

谁能帮帮我。

这是我正在尝试的代码

tap: function(img, e, options) 
        var overlay = Ext.Viewport.add(
            xtype: 'panel',
            modal : true,
            hideOnMaskTap : true,
            hidden : true,
            width : 100,
            height: 40,
            items :
            [
               
                 xtype:'button',
                 text:'Download'
               
            ],
        );
        overlay.showBy(img);
    

当我点击下载按钮时,图像应保存到 SD 卡(手机内存)或本地硬盘驱动器。

有人可以帮我吗?

谢谢。

【问题讨论】:

this 和 this 可能会有所帮助。 如何获取被点击的图片名称。我正在尝试的代码是 tap: function(img, e, options) Ext.Msg.alert('You clicked the image' + img); 但我没有得到图像名称,而是收到一条消息'你单击图像对象'你能帮忙吗? 图片名称还是图片来源? 有什么方法可以给我图像名称吗? 不确定图像名称是什么意思。图像具有下载图像所需的 src。但我不知道图片名称。 【参考方案1】:

获取图片名称:

我猜你正在添加带有 xtype img 的图像? 如果是图片src就是img.src

否则,您将需要添加以下命令才能查看对象包含的内容。

console.dir(img);

保存图片:

如果源是 base64,您将能够将图像保存到本地存储。 javascript 不会写入 SD 卡等。 除此之外,您还可以缓存图像。

如果您使用的是 PhoneGap,这将是可能的。

【讨论】:

以上是关于触发图像点击事件时,如何将图像保存到手机内存(例如 SD 卡或本地硬盘驱动器)?的主要内容,如果未能解决你的问题,请参考以下文章

将相机图像保存在手机记忆库中的自定义位置

动态点击事件未触发

一次快速将多个图像保存到文件系统,高CPU

NativeScript - 如何将图像保存/添加到手机的默认图库应用程序中

如何根据鼠标点击位置参数触发Javascript中的事件?

如何将摄像头采集的YUV图像数据保存成图片