2014-09-12 111 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數據流發送到瀏覽器。

相關問題