可以隨時調整圖像大小並使用Drupal緩存結果嗎?Drupal實時調整圖像大小
我有一些大的圖像(例如2000x2000px),我想顯示例如100x100px。我知道theme_image_style函數。但它接縫只能創建尺寸合適的<img>
,並且不能有效調整圖像大小。
我看看modules/images/image.admin.inc,他們使用函數[image_style_create_derivative][2]
。
可以隨時調整圖像大小並使用Drupal緩存結果嗎?Drupal實時調整圖像大小
我有一些大的圖像(例如2000x2000px),我想顯示例如100x100px。我知道theme_image_style函數。但它接縫只能創建尺寸合適的<img>
,並且不能有效調整圖像大小。
我看看modules/images/image.admin.inc,他們使用函數[image_style_create_derivative][2]
。
是的,你應該使用Drupal的圖像樣式(配置 - >媒體 - >圖像樣式)。你應該創造你的風格。
然後,在前端,當過要與這種風格(在分辨率),顯示圖像可以使用image_style_url()函數:
https://api.drupal.org/api/drupal/modules!image!image.module/function/image_style_url/7
它接受兩個參數 - 一個是圖像樣式機器名稱和其他是圖像URI,如果您打印出所有圖像字段屬性,則可以獲得該圖像URI。
您還可以從後端界面中選擇圖像樣式......即,當爲某些圖像創建視圖時,您可以選擇以特定圖像樣式顯示。
在這兩種情況下,這些圖像樣式都是在第一次使用圖像時生成的。
爲了迴應您對MilanG的回答的評論,使用image_style_url()是後端的最佳選擇。還有
https://www.drupal.org/project/resp_img
這可能是一些值得探討。從UX的角度來看,您不希望每次加載頁面時都強制用戶加載2000x2000 px圖像。無論輸出的大小如何,圖像仍將呈現爲大尺寸的2000x2000像素圖像。 image_style_url()或在GUI中使用圖像樣式創建一個新文件,加載速度更快,是首選方法。
謝謝你回答我。你知道沒有使用Drupal後端的解決方案嗎?只能使用PHP。 – Charles
通過使用PHP圖像處理庫(如GD庫或Image magic),您也可以自己完成。 – MilanG