添加图像(PNG / JPG)动画gif (PHP iMagick)


Add image (PNG / JPG) to animated gif (PHP iMagick)

我使用imagick (PHP)版本基本上添加文本和徽标到动画gif。我已经设法添加文本,这是伟大的。但我正在努力添加一个图像使用以下:

    $gif = new Imagick();
    $gif->readImage('images/highres/bg/' . $bgimg . '.gif');
    foreach ($gif as $frame) {
        $img = new Imagick(); 
        $img->readImageBlob($frame);
        $canvas->addImage( $img );  
      //$canvas->compositeImage($img, Imagick::COMPOSITE_DEFAULT, 0, 0); NOT WORKING
        $canvas->setImageDelay( $img->getImageDelay() ); 
    //$img->clear();
    //Add Logo
    //$logo         = new Imagick();
    //$logo->readImage('images/uploads/155x100.jpg');
    //$canvas->compositeImage($logo, Imagick::COMPOSITE_DEFAULT, 500, 500); NOT WORKING
    //$canvas->addImage( $logo ); 
}

此外,我正在努力使用X,Y坐标定位。

任何想法?

也许这能帮到你。

<?php
if (isset($_FILES["file"])) {
    $tmpFile = $_FILES["file"]["tmp_name"];
    $fileName = ... // determine secure name for uploaded file
    list($width, $height) = getimagesize($tmpFile);
    // check if the file is really an image
    if ($width == null && $height == null) {
        header("Location: index.php");
        return;
    }
    // resize if necessary
    if ($width >= 400 && $height >= 400) {
        $image = new Imagick($tmpFile);
        $image->thumbnailImage(400, 400);
        $image->writeImage($fileName);
    }
    else {
        move_uploaded_file($tmpFile, $fileName);
    }
}