这个问题可能有一个简单的答案,我可能会问它错误的方式。从网页上的原始数据显示图像
我有一个Web应用程序,通过API(特别是librets和MLS提要)从服务器获取信息。部分API返回图像,但采用原始二进制数据的形式。
当前我正在将这个原始二进制数据写入一个.jpg文件,并将它们存储在我的一面以供以后访问。我想知道是否有方法使用原始数据在网页上显示这些图像,而不必将它们保存在我的身边。
这个问题可能有一个简单的答案,我可能会问它错误的方式。从网页上的原始数据显示图像
我有一个Web应用程序,通过API(特别是librets和MLS提要)从服务器获取信息。部分API返回图像,但采用原始二进制数据的形式。
当前我正在将这个原始二进制数据写入一个.jpg文件,并将它们存储在我的一面以供以后访问。我想知道是否有方法使用原始数据在网页上显示这些图像,而不必将它们保存在我的身边。
我同样不确定我是否在正确的轨道上回答问题,所以只是好心地忽略或者说,而不是downvote我,如果我的解释你的querstion是in the wrong way
就像你的问题!
您可以从PHP提供图像而不是从文件 - 我的意思是你可以让PHP动态地创建一个图像并提供它,而不必在你的web服务器的文件系统中有一个文件,并且不得不通过名称来引用它您的HTML中的<image>
标记的src
字段。
所以,与其
<image src="....jpg" alt="..." size="...">
可以使用
<img src="/php/thumb.php?param1=$col¶m2=$ref"/>
这将导致PHP脚本在`/php/thumb.php”被调用时,页面呈现,在这脚本,您可以动态创建图像(如果您愿意,可以使用额外的参数):
<?php
header("Content-type: image/jpeg");
$p1 = $_GET['param1'];
$p2 = $_GET['param2'];
$src = imagecreatefromstring(SOMESTRING);
$dst = imagecreatetruecolor($width,$height);
imagecopyresampled($dst,$src,0,0,0,0,$width,$height,$size[0],$size[1]);
imagedestroy($src);
imagejpeg($dst);
imagedestroy($dst);
?>
我省略一些代码在前三行之后,所以你只是看到了技术,而不是我的代码的所有细节。实际的线,你有兴趣的是:
header(...image/jpeg);
告诉什么东西类型来了浏览器 - 即图像,
imagejpeg();
这实际上JPEG数据流发送到浏览器。
“原始二进制数据”是什么意思?来自哪里?什么格式?我的意思是一个JPEG是二进制的?你的意思是第一个字节是左上角的红色像素,第二个是绿色,第三个是蓝色? – 2014-09-12 18:50:17
基本上我有一个字符串,形式为'\ xff \ xd8 \ xff \ xe0 \ x00 \ x10JFIF \ x00 \ x01 \ x01 \ x01 \ x00' \ x00' \ x00 \ x00 \ xff \ xe1 \ x00“Exif \ x00 \ x00MM \ x00 ...'等。目前我打开一个名为“foo.jpg”的文件写入它,然后将其保存到我身边的资源文件中,稍后访问
src标记中的文件以显示在页面上。 –
bgrantdev
2014-09-12 19:23:16