Pergunta

Estou usando o imagemagick para redimensionar os arquivos enviados, mas enquanto eles estão sendo processados, quero mostrar uma roda gif giratória para o usuário onde a miniatura normalmente estaria.Eu sirvo cerca de 7 tamanhos de polegares e gostaria que a roda permanecesse no tamanho 32x32 no meio, essa é a parte simples.

O que preciso saber é: posso fazer o que foi dito acima mantendo a animação

Exemplo:

Esta imagem:This Image

Começando neste tamanhoThis Size

Com animação

Foi útil?

Solução

existe uma solução em php que eu uso para marcar imagens animadas gif com marca d'água ....ele cria um fundo preto, coloca uma imagem nele e depois coloca marca d'água ...

watermarkpath = 'path to wathermarkimage.jpg|gif|png';
$imagepath= 'path to the image';     
$watermark = new Imagick($watermarkpath);
 $GIF = new Imagick();
 $GIF->setFormat("gif");

$animation = new Imagick($imagepath);
foreach ($animation as $frame) {

    $iWidth = $frame->getImageWidth();
    $iHeight = $frame->getImageHeight();
    $wWidth = $watermark->getImageWidth();
    $wHeight = $watermark->getImageHeight();

    if ($iHeight < $wHeight || $iWidth < $wWidth) {
        // resize the watermark
        $watermark->scaleImage($iWidth, $iHeight);

        // get new size
        $wWidth = $watermark->getImageWidth();
        $wHeight = $watermark->getImageHeight();
    }

    $bgframe = new Imagick();
    $bgframe->newImage(($iWidth), ($iHeight + 80), new ImagickPixel('Black'));
    $bgframe->setImageDelay($frame->getImageDelay());


    $x = ($iWidth) - $wWidth - 5;
    $y = ($iHeight + 80) - $wHeight - 5;


    $bgframe->compositeImage($frame, imagick::COMPOSITE_DEFAULT, 0, 0);
     $bgframe->flattenImages();
    $bgframe->compositeImage($watermark, imagick::COMPOSITE_OVER, $x, $y);
     $bgframe->flattenImages();
    $GIF->addImage($bgframe);
}



$GIF->writeimages($imagepath,true);

Outras dicas

Confira este violino, pode conter o que você deseja: http://jsfiddle.net/tgdfb/1/

usa jquery, mas deve ser facilmente adaptável ...

acabou fazendo isso manualmente por Photoshop depois de não poder encontrar uma maneira automatizada de fazer isso através do ImageMagick.Eu encontrei a bandeira 'coalescer', mas não muito mais.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top