【发布时间】:2012-07-22 00:39:24
【问题描述】:
我的 iOS PhoneGap 应用程序显示一个照片库(从服务器加载)。是否可以在图像页面上添加一个将图像保存到 iOS 相机胶卷的按钮? (类似于移动 Safari 中的点击并按住)
如果这是需要作为插件完成的事情,任何将我指向正确方向的信息将不胜感激! (我的obj C技能很欠缺)。
谢谢!
【问题讨论】:
-
你找到什么了吗?
我的 iOS PhoneGap 应用程序显示一个照片库(从服务器加载)。是否可以在图像页面上添加一个将图像保存到 iOS 相机胶卷的按钮? (类似于移动 Safari 中的点击并按住)
如果这是需要作为插件完成的事情,任何将我指向正确方向的信息将不胜感激! (我的obj C技能很欠缺)。
谢谢!
【问题讨论】:
在 Cordova/Phonegap 插件 Canvas2ImagePlugin 的帮助下,这是可能的。安装它并将以下函数添加到您的代码中。它基于 Raul Sanchez 的 getImageDataURL()(谢谢!)。
function saveImageToPhone(url, success, error) {
var canvas, context, imageDataUrl, imageData;
var img = new Image();
img.onload = function() {
canvas = document.createElement('canvas');
canvas.width = img.width;
canvas.height = img.height;
context = canvas.getContext('2d');
context.drawImage(img, 0, 0);
try {
imageDataUrl = canvas.toDataURL('image/jpeg', 1.0);
imageData = imageDataUrl.replace(/data:image\/jpeg;base64,/, '');
cordova.exec(
success,
error,
'Canvas2ImagePlugin',
'saveImageDataToLibrary',
[imageData]
);
}
catch(e) {
error(e.message);
}
};
try {
img.src = url;
}
catch(e) {
error(e.message);
}
}
像这样使用它:
var success = function(msg){
console.info(msg);
};
var error = function(err){
console.error(err);
};
saveImageToPhone('myimage.jpg', success, error);
【讨论】: