Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Meu problema é o seguinte, eu estou fazendo um resize and crop em "tempo" real, para carregar a imagem em tamanhos menores e pesar menos na hora de carregamento da página.
No localhost (wamp) funciona normalmente, mas no servidor (revenda uol), ele não encontra a imagem e fica aquele quadradinho de imagem indisponível.
Eu fiz da seguinte forma no cakePHP 2.x
WiController
<?php
class WiController extends AppController {
public function resize_crop($w = 1, $h = 1, $image){
$this->layout = null;
header("Content-type: image/jpeg");
App::import('Vendor', 'WideImage/WideImage');
$img = WideImage::load(FULL_BASE_URL.$this->webroot.IMAGES_URL.str_replace("*", "/", $image));
$img = $img->resize($w, $h, 'outside');
$img = $img->crop('center', 'center', $w, $h);
$img->output('jpg', 90);
}
}
Puxando a imagem (View)
$this->Html->image(FULL_BASE_URL.$this->webroot.'wi/resize_crop/400/200/blog*'.$varImg)
>
Considerando que o diretório das imagens está em app/webroot/img.
<?php
$imagem ='users/qualquer.png';
echo $this->Html->image($imagem,array('fullBase' =>true));
Se o diretório não for img, configure em app/Config/core.php no trecho :
//Configure::write('App.imageBaseUrl', 'img/');
para
Configure::write('App.imageBaseUrl', 'seuDiretório/');
Utilizo assim para exibir as imagens.
As imagens são exibidas se eu utilizar o modo padrão, mas eu preciso dar um crop e resize nela antes de ser exibida, assim, ficando mais leve no carregamento da página.
A hospedagem é Windows ou Linux?
Dá uma olhada nas barras ( \ /). No Linux usa-se \.
Tenta com DIRECTORY_SEPARATOR ao invés das barras, talvez seja esse o problema
É linux, troquei tudo (onde possível) por DIRECTORY_SEPARATOR, no localhost continua funcionando, mas no servidor aparece como imagem inexistente =/
Considerando que o diretório das imagens está em app/webroot/img.
Se o diretório não for img, configure em app/Config/core.php no trecho :
//Configure::write('App.imageBaseUrl', 'img/');
para
Configure::write('App.imageBaseUrl', 'seuDiretório/');
Utilizo assim para exibir as imagens.