2014-10-07 44 views
1

我有一個應用程序,它通過將fopen($fileServerTempName, 'br')傳遞到PDO參數出價中來將圖像加載到MySQL blob中。這很好。但是,我收到了一個新的要求,用於編輯內存中的照片,同時使用imagecreatefrompng函數來初始化圖像對象。現在我不知道如何從生成的圖像對象中獲取數據流以將修改的圖像加載回MySQL。我如何從這樣的數據流:如何從PHP中的圖像變量中加載blob

$sourceImage = imagecreatefrompng($fileServerTempName); 
// do some modifications to $sourceImage 

是,該fopen會產生相同的格式?我已經嘗試將變量轉換爲二進制,編碼和解碼,但沒有運氣。任何幫助,將不勝感激。如果可能,我想避免在磁盤上創建實際修改映像的臨時副本。

謝謝。

+1

爲什麼要將圖像本身存儲在MySQL中?除非您對這些blob進行某種二進制搜索,否則您可能會更好地將文件存儲在磁盤上,並將其路徑引用存儲在數據庫中。 – 2014-10-07 19:21:25

+0

@MikeBrant我不能同意你的看法,除非我無權在此作出決定。我猜這背後有原因,我只是不知道他們。 – 2014-10-07 19:26:10

回答

1
ob_start(); 
    imagesavealpha($sourceImage, true); // enable transparency 
    imagepng ($sourceImage); 
    $image_data = ob_get_contents(); 
ob_end_clean(); 

您現在可以將圖像保存回MySQL。

+0

這工作完美無瑕。如果這最終成爲最佳選擇,我會再測試一些並標記爲已接受。謝謝。 – 2014-10-07 19:43:52

+0

對於將您標記爲正確答案的延誤感到抱歉:P – 2015-05-21 19:31:39