2015-06-22 46 views
1

可以隨時調整圖像大小並使用Drupal緩存結果嗎?Drupal實時調整圖像大小

我有一些大的圖像(例如2000x2000px),我想顯示例如100x100px。我知道theme_image_style函數。但它接縫只能創建尺寸合適的<img>,並且不能有效調整圖像大小。

我看看modules/images/image.admin.inc,他們使用函數[image_style_create_derivative][2]

回答

2

是的,你應該使用Drupal的圖像樣式(配置 - >媒體 - >圖像樣式)。你應該創造你的風格。

然後,在前端,當過要與這種風格(在分辨率),顯示圖像可以使用image_style_url()函數:

https://api.drupal.org/api/drupal/modules!image!image.module/function/image_style_url/7

它接受兩個參數 - 一個是圖像樣式機器名稱和其他是圖像URI,如果您打印出所有圖像字段屬性,則可以獲得該圖像URI。

您還可以從後端界面中選擇圖像樣式......即,當爲某些圖像創建視圖時,您可以選擇以特定圖像樣式顯示。

在這兩種情況下,這些圖像樣式都是在第一次使用圖像時生成的。

+0

謝謝你回答我。你知道沒有使用Drupal後端的解決方案嗎?只能使用PHP。 – Charles

+0

通過使用PHP圖像處理庫(如GD庫或Image magic),您也可以自己完成。 – MilanG

1

爲了迴應您對MilanG的回答的評論,使用image_style_url()是後端的最佳選擇。還有

https://www.drupal.org/project/resp_img

這可能是一些值得探討。從UX的角度來看,您不希望每次加載頁面時都強制用戶加載2000x2000 px圖像。無論輸出的大小如何,圖像仍將呈現爲大尺寸的2000x2000像素圖像。 image_style_url()或在GUI中使用圖像樣式創建一個新文件,加載速度更快,是首選方法。