1

アップロードされたファイルのサイズを変更するためにimagemagickを使用していますが、処理中にサムネイルが通常ある場所に回転するgifホイールをユーザーに表示したいと考えています。私は親指の約 7 サイズを提供し、ホイールが真ん中の 32x32 サイズのままであることを望みます。それは単純なビットです。

私が知る必要があるのは、アニメーションを保持したまま上記を実行できるかということです

例:

この画像: この画像

このサイズから このサイズ

アニメーション付き

4

3 に答える 3

1

このフィドルをチェックしてください。必要なものが含まれている可能性があります:http://jsfiddle.net/TGdFB/1/

jQueryを使用しますが、簡単に適応できるはずです...

于 2012-10-02T08:46:33.620 に答える
1

imagemagickを介してこれを行う自動化された方法を見つけることができなかった後、Photoshopでこれを手動で行うことになりました。「合体」フラグを見つけましたが、他にはあまりありませんでした。

于 2012-10-02T09:16:34.157 に答える
0

php witchには、gifアニメーション画像に透かしを入れるために使用する解決策があります....それは、黒いバグラウンドを作成し、その上に画像を置き、透かしを入れます...

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);
于 2013-01-23T09:52:14.060 に答える