我的项目是一个图像处理脚本,使用 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/