2014-09-12 38 views
0

这个问题可能有一个简单的答案,我可能会问它错误的方式。从网页上的原始数据显示图像

我有一个Web应用程序,通过API(特别是librets和MLS提要)从服务器获取信息。部分API返回图像,但采用原始二进制数据的形式。

当前我正在将这个原始二进制数据写入一个.jpg文件,并将它们存储在我的一面以供以后访问。我想知道是否有方法使用原始数据在网页上显示这些图像,而不必将它们保存在我的身边。

+0

“原始二进制数据”是什么意思?来自哪里?什么格式?我的意思是一个JPEG是二进制的?你的意思是第一个字节是左上角的红色像素,第二个是绿色,第三个是蓝色? – 2014-09-12 18:50:17

+0

基本上我有一个字符串,形式为'\ 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

回答

0

我同样不确定我是否在正确的轨道上回答问题,所以只是好心地忽略或者说,而不是downvote我,如果我的解释你的querstion是in the wrong way就像你的问题!

您可以从PHP提供图像而不是从文件 - 我的意思是你可以让PHP动态地创建一个图像并提供它,而不必在你的web服务器的文件系统中有一个文件,并且不得不通过名称来引用它您的HTML中的<image>标记的src字段。

所以,与其

<image src="....jpg" alt="..." size="..."> 

可以使用

<img src="/php/thumb.php?param1=$col&param2=$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数据流发送到浏览器。

相关问题