這個問題可能有一個簡單的答案,我可能會問它錯誤的方式。從網頁上的原始數據顯示圖像
我有一個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