php - 从ajax调用输出图像的最快方法

标签 php javascript ajax imagemagick imagick

我的项目是一个图像处理脚本,使用 php、JavaScript 和 imagick(或 imagemagick)。

目前,用户可以使用浏览器更改图像的属性,然后 jscript 将 Ajax 调用发送到我的 php 脚本以处理更改,重新保存图像并将文件路径和响应发送回浏览器,以便 jscript 然后可以刷新 img 标签。

如果可能的话,我希望加快这个过程。

理想情况下,处理 php 脚本能够在使用适当的 mime header 处理更改后直接输出原始图像数据,但这无法完成,因为同一文件需要发送 json 响应。

欢迎任何意见和建议..

编辑:我应该提到到目前为止我尝试过的内容:

由于可用于更改图像的操作种类繁多,通过类似 <img src='image.php?id=132&layer1=flip' /> 的 url 字符串告诉我的 php 脚本要更改什么该网址通常会超过推荐的 maximum number of characters .否则这将是理想的。

我也试过发回 base64 原始数据并进行处理,虽然我没有完全排除这种情况,但它有它的缺点——将 base64 数据添加到 <img> 的 src 中。并非所有浏览器都自然支持。

最佳答案

我不知道这是否是最好的方式,但想想看:

您必须使用 <img src=""> 可视化您的图像.现在您进行以下操作:

  • 用户点击按钮 -> AJAX 请求到服务器 -> Ajax 响应 浏览器的 URL -> 更改 src=""图像和可视化

将其替换为以下内容:

  • 用户点击按钮 -> 更改 src=""的php文件 处理操作并在准备就绪时显示它。

给你一些解释代码:

<img src="image.php?picid=123123" id="#image"><button id="#rotate90">rotate</button>
<script>
$("#rotate90").click(function(){
  $("#image").attr("src","image.php?picid='123123'&do=rotate&what=90");
}
</script>

所以你通过picid传输到你的php文件你指的是哪张照片,do说你想调用什么函数和what在模具示例中,您要旋转的度数。您的 PHP 文件必须返回带有正确 header 的图片(例如 header('Content-Type: image/jpeg'); ),浏览器将加载图片直到函数完成。

关于php - 从ajax调用输出图像的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9455168/

相关文章:

javascript - require.js 模块未正确加载

javascript - 需要帮助添加到 Javascript 数组对象并插入到命令中

javascript - 在 jqGrid 中调用所选行仅有效一次

php - 从我的本地主机 PHP 应用程序连接到 VM 上的 Redis

php - PECL bbcode 包构建失败

javascript - Opera 中的原型(prototype)观察事件问题

javascript - 没有服务器端支持的SPA的Facebook共享(托管在CDN上)

php - 5 .htaccess 重写 : Force HTTPS, 删除 index.php,删除 .php,强制 www,强制尾部斜线

php - 我想检查一张 table 上的人是否有效输入他的出勤率

javascript - 使用 AJAX 通过 POST 请求发送 HTML 表单多个 <select> 框?