Product Image Cache - Immagine ridimensionamento
Domanda
La mia domanda è su come e quando le immagini vengono create all'interno della cache di immagine del prodotto. In particolare, se viene eseguito questo codice:
$imageTag ='<br><img src="'.Mage::helper('catalog/image')->init($product ,
'small_image')->resize(75).'" border="0" />';
E la seguente directory esiste con 777 permesso:
/media/catalog/product/cache/1/small_image/
Ma non c'è nessuna sottodirectory 75x/
, sarà quella directory vengono creati e l'immagine ridimensionata memorizzata al posto giusto? O fa quel bisogno directory di essere disponibile (attraverso qualche altro processo) prima di tentare di ottenere l'URL per l'immagine ridimensionata utilizzando l'helper Magento?
Soluzione
Leggi questa risposta, https://magento.stackexchange.com/a/1008/361
Il numero all'interno del URL non rappresenta le dimensioni di scala o pixel dell'immagine -. È la vista store
Tutte le directory / file vengono creati automaticamente il momento in cui il front-end viene visualizzato e viene eseguito il codice di ridimensionamento. Si tratta di che semplice.
Altri suggerimenti
Questa directory viene creata automaticamente. I nostri sviluppatori nel frontend cambiano regolarmente formati, senza creare alcuna directory.
<?php
$_file_name = $cat->getThumbnail(); // Here $cat is category data array
$_media_dir = Mage::getBaseDir('media') . DS . 'catalog' . DS . 'category' . DS;
$cache_dir = $_media_dir . 'resize' . DS; // Here i create a resize folder. for upload new category image
if (file_exists($cache_dir . $_file_name)) {
$catImg =Mage::getBaseUrl('media') . 'catalog' . DS . 'category' . DS . 'resize' . DS . $_file_name;
} elseif (file_exists($_media_dir . $_file_name)) {
if (!is_dir($cache_dir)) {
mkdir($cache_dir);
}
$_image = new Varien_Image($_media_dir . $_file_name);
$_image->constrainOnly(true);
$_image->keepAspectRatio(false);
$_image->keepFrame(false);
$_image->keepTransparency(true);
$_image->resize(224, 174); // change image height, width
$_image->save($cache_dir . $_file_name);
$catImg = Mage::getBaseUrl('media') . 'catalog' . DS . 'category' . DS . 'resize' . DS . $_file_name;
}
echo $catImg ; // display resize category thumbnail imagename
?>
<img src="<?php echo $catImg; ?>" />
Ho trovato la soluzione del problema Qui