javascript-用于网络保存已编辑图像的Adobe Creative SDK
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-用于网络保存已编辑图像的Adobe Creative SDK,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3735字,纯文字阅读大概需要6分钟。
内容图文
我正在将Adobe Creative SDK产品部署到我的网站上以供管理使用;管理员可以访问特定图像(在首页滑块上使用),编辑和保存.
问题在于Adobe关于如何利用onSave()回调函数的文档非常模糊.我不得不去老站点Aviary寻找答案,但是即使到那里也很模糊.
首先,我使用MySql DB查询将图像从服务器中拉出(滑块中至少有2张图像,所以我希望这是数据库驱动的而不是静态的).图像在数据库中作为参考文件存储为文件.
其次,一旦图像显示在页面上(所有图像以及文本叠加层,链接等都显示在管理页面上),管理员可以单击图像,然后调用Adobe Creative SDK,编辑器窗口将显示.都好.
第三,在编辑后,管理员可以单击“保存”,并将他的编辑临时保存到Adobe云(并且编辑后的图像将替换页面上的原始图像).我需要将映像也保存在服务器上,从而覆盖原始映像(我不想进行数据库更新-过多的额外工作).
这是Adobe和Aviary上模糊的说明没有帮助的地方.
这是我的代码…
(这些是Adobe Creative SDK中的功能):
var featherEditor = new Aviary.Feather({
apiKey: 'myapikey',
theme: 'dark', // Check out our new 'light' and 'dark' themes!
tools: 'all',
appendTo: '',
onSave: function(imageID, newURL) {
var img = document.getElementById(imageID);
img.src = newURL;
},
one rror: function(errorObj) {
alert(errorObj.message);
}
});
function launchEditor(id, src) {
featherEditor.launch({
image: id,
url: src
});
return false;
}
基本上,每个加载的图片都包含在< img>标记一个onclick事件,如下所示:
<a href="#" onclick="return launchEditor('editableimage<?php echo $srow->id ?>', 'http://www.3yearlectionary.org/assets/slider/<?php echo $srow->sld_image ?>');"><img id="editableimage<?php echo $srow->id ?>" src="assets/slider/<?php echo $srow->sld_image ?>" /></a>
这将调用launchEditor函数并显示编辑器.单击“保存”后,将触发onSave()回调,并且可以在该回调函数中本地保存图像.
但是Adobe仅提供以下示例来实现此目的,它们对我来说意义不大:
首先,似乎需要将其添加到onSave()函数中:
$.post('/save', {url: newURL, postdata: 'some reference to the original image'})
我假设’/ save’实际上是我用来完成工作的php脚本…或者可能是服务器上保存图像的位置…不确定. “ postdata”说它需要“对原始图像的某种参考”,但是我真的不知道如何获得它.我尝试从launchEditor()函数中使用“ url”,因为它似乎已传递给featherEditor,但这没有用,当我执行alert()时,它只是返回了一个空值.
如果有人可以帮助我解决这个问题,我可以轻松地完成服务器端php的维护工作.但是我只是不知道如何获取Adobe保存的新图像以覆盖服务器上的旧图像.谢谢!
解决方法:
图像编辑器的onSave()方法
onSave()只是一个钩子;这是图像保存完成后调用的方法.您在onSave()方法中放入的内容完全由您决定.
仅作说明,您可以1)用新编辑的图像URL替换原始图像元素的源,然后2)关闭编辑器:
onSave: function(imageID, newURL) {
originalImage.src = newURL;
featherEditor.close();
}
您甚至可以在其中放置一个控制台日志,但这对用户没有多大帮助.
同样,onSave()只是在保存完成后使用的一个钩子,它的内容完全由您决定.
发布到您的服务器
您在问题中显示的代码仅是如何使用Image Editor的onSave()方法中的jQuery将数据发布到服务器的示例.无需您以这种方式进行操作;您甚至不必使用jQuery.
为了清楚起见,下面再次查看该示例:
$.post('/save', {url: newURL, postdata: 'some reference to the original image'})
终点
上面的示例使用jQuery post() method命中服务器上的/ save端点.该端点可以是您想要的任何端点.如果服务器上有一个名为/ upload-image的终结点,则可以改用该终结点.
在您的情况下,此端点将是用于处理映像文件保存和数据库更新的PHP脚本.
帖子数据
post()的第二个参数是一个带有您要传递的数据的对象.在此示例中,我们传递:
>编辑后的图像的newURL,以便您的服务器可以对其进行处理(请参见下面的重要说明)
>对原始图像的引用(在此处任意命名为postdata),以便您的服务器可以知道编辑了什么图像
您可以在该对象中放入任何想要的东西.这取决于您的服务器脚本需要什么.但至少,我认为这将需要newURL并可能需要某种方式来引用数据库中的原始图像.
重要说明:如Creative SDK for web Image Editor guide中所述,您在onSave()方法中收到的newURL是一个临时URL.它会在72小时后过期.这意味着您的服务器脚本需要将映像本身保存到服务器.如果仅将URL存储在数据库中,则图像将在72小时后开始消失.
内容总结
以上是互联网集市为您收集整理的javascript-用于网络保存已编辑图像的Adobe Creative SDK全部内容,希望文章能够帮你解决javascript-用于网络保存已编辑图像的Adobe Creative SDK所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。