2014-02-07 23 views
1

任何人都可以告訴我,Magento中的哪個類/方法應該被覆蓋(在插件中),以便在上傳時自動調整圖像大小?如何在Magento中上傳圖片(真實)?

目的是在Magento設置中設置最大寬度/高度,然後在這個類/方法中使用這些設置。

這個問題已經被問至少2〜3次,但我不認爲「Magento的自動使不同版本」作爲一個可接受的答案倍數的原因:

  • 後端用戶有時上傳HD相似圖片10Mpixels左右
  • 10Mpixels圖片永遠不會(至少不會直到幾年)在一個簡單的網上商店必須
  • 需要硬盤,備份磁盤,可以填充磁盤配額很快,鎖定了Magento的
  • 它沒有任何意義Ø討論「爲什麼」的時候,問題僅僅是

「如何」謝謝:)

回答

2

我們已經創建了一個簡單的Magento的插件,使圖像的大小調整的上傳。您可以配置一個最大寬度和高度或保持禁用:https://github.com/ircf/magento-resize-at-upload

這個插件將在Magento添加連接很快。

任何人都可以選擇使用與否,這是另外一個問題。

0

我們已經做了類似的事情,而不Magento的,而是直接PHP,也許你可以這樣做,我不知道你的里程是多少。

在Linux上安裝ImageMagick並閱讀該站點上的命令行工具:Magick commands

一旦你知道你所需要的命令語法,請按照下列步驟操作:

  • 上傳二進制與唯一的名稱temp目錄(使用PHP的uniqueid());
  • 用PHP的exec()聲明進行轉換;
  • 將文件移動到確定的目標文件夾(使用PHP的rename()語句);
  • unklink(刪除)臨時文件(使用PHP的unlink()語句)。

這是很多工作,但一旦完成,它現在在很多我們有的系統上工作得非常好。

+0

謝謝你的回答,我打算實現類似的東西,除了我想使用magento和varien API來上傳和調整圖像大小,所以這個功能可以打包在Magento插件中,並且很容易啓用/禁用 –

0

Magento的產品圖片調整大小已經非常強大,在任何情況下都不應該考慮替換它。這個不成立。

任何沒有優化的後端用戶上傳10兆像素圖片都不應該是網站主人。任何產品攝影應該始終針對網頁進行優化,甚至更適合您的商店模板進行優化。

讓我們從不同的角度來看待 - 將1200px X 1200px圖像上傳到magento admin(優化應該小於150kb),而在前端,您的響應模板顯示的視網膜大約600px的最大產品圖像版本仍然是1200px。

使用圖片元素或webkit接受srcset,您可以快速定義一個新的分辨率在不同的屏幕寬度和密度,從一個單一的高分辨率圖像,因爲這會動態創建這些大小和存儲在緩存中。

如果存儲是一個問題,您可以隨時刷新緩存以保存存儲並清理舊產品映像,但是如果存儲有問題,我建議升級您的主機,因爲在系統中尋找黑客以適應窮人硬件設施。

考慮使用CDN的和其他基於雲的系統,用於備份的手段,只是忽略了自己的本地備份媒體文件夾。

+3

後端用戶不是網站管理員,而是一個簡單的商人,所以是的,這是有道理的。目的不是要取代magnto調整大小的方法,而只是確保原始圖片僅限於合理的格式。 Magento的目標是讓一個簡單的用戶無需準備圖像即可訪問。這不是關於糟糕的基礎設施,而是保持合理的(負擔得起的)磁盤空間。此外,我不想在這裏討論「爲什麼」,只是「如何」,更確切地說要覆蓋哪種方法。如果你不知道,就不要回答這個問題。 –

+1

傲慢沒有得到任何地方的任何,我的回答是不是我的情況下,不知道該怎麼辦,而只是解釋更好的方式做一些事情。如果你想通過查看Varien_Image開始分割Magento,然後通過GD庫擴展。 – Steven