php gd imagettftext函數只能從文件加載真正的字體類型。有沒有一種方法可以從內存中加載它?例如,我從數據庫中拉出文件,並以某種方式將字節串傳遞給它?php imagettftext從內存中加載
我唯一能想到的其他選擇是從db中加載文件,將其寫入磁盤(如果它尚不存在),然後加載它/ w imagettftext。有沒有更好的辦法?
php gd imagettftext函數只能從文件加載真正的字體類型。有沒有一種方法可以從內存中加載它?例如,我從數據庫中拉出文件,並以某種方式將字節串傳遞給它?php imagettftext從內存中加載
我唯一能想到的其他選擇是從db中加載文件,將其寫入磁盤(如果它尚不存在),然後加載它/ w imagettftext。有沒有更好的辦法?
臨時文件聽起來像一個非常好的想法,但我質疑你爲什麼要將它存儲在數據庫中。將所有這些TTF存儲在某個目錄中會更有效率。然後我只是存儲路徑/文件名。將臨時文件寫入磁盤的許多臨時操作在高負載環境中可能會產生相當大的負面影響。
爲了方便起見,我將其存儲在數據庫中。做備份更容易,而且當這些文件附加到其他數據時,更容易保持一致。我決定我會設置一個緩存。它將檢查磁盤上的文件,如果沒有,它會將其加載到數據庫中並將其永久存儲在文件系統中。未來的通話只會從FS上下載。如果我需要遷移到另一臺服務器,我只需要備份一個地方(其他所有地方都在配置管理系統下)。 – rizen
聽起來像一個堅實的方法。 –
我相信你被迫從GD文件系統讀取。即使實現自定義流包裝也沒有幫助; GD顯然不使用PHP的流系統,只是加載文件本身。
你可能想要做的是使用另一種語言與圖像處理庫,可以完成你所需要的。您將能夠使用PHP提供您的網頁,並使用其他方式提供您的圖像。
這似乎是這種情況 - 我同意。 – Rolf
爲什麼你不能將字體保存到磁盤? – Mike