擷取縮圖
thumbnail() 會擷取 DWG 已內嵌的預覽,不會渲染圖面。
必要命令: LibreDWG
dwgbmp。請參考外部工具。
擷取內嵌預覽
php
use Mattmy\DwgConverter\Facades\Dwg;
$thumbnail = Dwg::thumbnail($request->file('drawing'))->extract();
$extension = $thumbnail->extension(); // bmp、png 或 wmf
$mimeType = $thumbnail->mimeType();副檔名與 MIME 類型依輸出內容判定,不採用 LibreDWG 產生的檔名。
驗證邊界
套件會檢查 BMP、PNG、WMF 預覽的基本結構。沒有通過檢查時,會拋出 DwgOperationFailed, 原因為 thumbnail_invalid。
縮圖會原樣回傳,不會修補或重新編碼。這些只是基本格式檢查,不會完整解碼圖片,因此即使擷取成功, 也不保證每個圖片檢視器都能開啟結果。這項功能不需要額外安裝圖片解碼工具。
儲存縮圖
檔名可省略;可信的偵測副檔名會自動套用:
php
$path = $thumbnail->storeAs(
path: 'drawing-thumbnails',
disk: 's3',
);呼叫 storeAs() 後,這個結果就不能再次使用。對同一物件再次呼叫 output() 或 storeAs() 會拋出 LogicException。
沒有縮圖
有效 DWG 也可能沒有預覽。此時會拋出 DwgOperationFailed,reason() 為 thumbnail_not_found, 不會回傳 null,也不會自動改用 toImage()。
需要渲染整個模型空間時,請使用圖片預覽。