Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP合并图像(白色=透明度)_Php_Merge_Transparency - Fatal编程技术网

PHP合并图像(白色=透明度)

PHP合并图像(白色=透明度),php,merge,transparency,Php,Merge,Transparency,如果图像颜色为白色,如何合并图像以获得透明度状态为白色 我遇到这种情况: 我需要这个结果: 您需要使用类似Gimp的程序,添加透明层,从firefox图像中删除白色,然后另存为PNG。您需要使用类似Gimp的程序,添加透明层,从firefox图像中删除白色,然后另存为PNG。您需要使用类似Gimp的程序,添加透明层,从firefox图像中删除白色,并另存为PNG。您需要使用类似Gimp的程序,添加透明层,从firefox图像中删除白色,然后另存为PNG。这不是最好的结果,因为我不知道更好的方法

如果图像颜色为白色,如何合并图像以获得透明度状态为白色

我遇到这种情况:

我需要这个结果:


您需要使用类似Gimp的程序,添加透明层,从firefox图像中删除白色,然后另存为PNG。

您需要使用类似Gimp的程序,添加透明层,从firefox图像中删除白色,然后另存为PNG。

您需要使用类似Gimp的程序,添加透明层,从firefox图像中删除白色,并另存为PNG。

您需要使用类似Gimp的程序,添加透明层,从firefox图像中删除白色,然后另存为PNG。

这不是最好的结果,因为我不知道更好的方法来实现这一点。以下是我的结果:

以下是PHP:

<?php

/** Set source image location **/
$baseImageSource    = 'http://q/stock-photos/tux.png';
$overlayImageSource = 'http://q/stock-photos/firefox-logo-small.jpg';

/** Overlay image configuration **/
// Set this value between 0 and 100. 10 will doing great
$fuzz = 10;

// Set position of overlay image, from top and left;
$overlayTop  = 240;
$overlayLeft = 200;


/** Core program **/

// Create Imagick object for source image
$overlayImage = new Imagick( $overlayImageSource );
$finalImage = new Imagick( $baseImageSource );

// Remove overlay image background
$overlayImage->paintTransparentImage(
    $overlayImage->getImagePixelColor( 0, 0 ),
    0, round( $fuzz * 655.35 )
);

// Set image overlay format
$overlayImage->setImageFormat('png');

// Put overlay image to base image
$finalImage->compositeImage(
    $overlayImage, Imagick::COMPOSITE_DEFAULT,
    $overlayLeft,
    $overlayTop
);

// Set output image format
$finalImage->setImageFormat('png');

// Prepare image and publish!
header('Content-type: image/png');
echo $finalImage;

这不是最好的结果,因为我不知道更好的方法来实现这一点。以下是我的结果:

以下是PHP:

<?php

/** Set source image location **/
$baseImageSource    = 'http://q/stock-photos/tux.png';
$overlayImageSource = 'http://q/stock-photos/firefox-logo-small.jpg';

/** Overlay image configuration **/
// Set this value between 0 and 100. 10 will doing great
$fuzz = 10;

// Set position of overlay image, from top and left;
$overlayTop  = 240;
$overlayLeft = 200;


/** Core program **/

// Create Imagick object for source image
$overlayImage = new Imagick( $overlayImageSource );
$finalImage = new Imagick( $baseImageSource );

// Remove overlay image background
$overlayImage->paintTransparentImage(
    $overlayImage->getImagePixelColor( 0, 0 ),
    0, round( $fuzz * 655.35 )
);

// Set image overlay format
$overlayImage->setImageFormat('png');

// Put overlay image to base image
$finalImage->compositeImage(
    $overlayImage, Imagick::COMPOSITE_DEFAULT,
    $overlayLeft,
    $overlayTop
);

// Set output image format
$finalImage->setImageFormat('png');

// Prepare image and publish!
header('Content-type: image/png');
echo $finalImage;

这不是最好的结果,因为我不知道更好的方法来实现这一点。以下是我的结果:

以下是PHP:

<?php

/** Set source image location **/
$baseImageSource    = 'http://q/stock-photos/tux.png';
$overlayImageSource = 'http://q/stock-photos/firefox-logo-small.jpg';

/** Overlay image configuration **/
// Set this value between 0 and 100. 10 will doing great
$fuzz = 10;

// Set position of overlay image, from top and left;
$overlayTop  = 240;
$overlayLeft = 200;


/** Core program **/

// Create Imagick object for source image
$overlayImage = new Imagick( $overlayImageSource );
$finalImage = new Imagick( $baseImageSource );

// Remove overlay image background
$overlayImage->paintTransparentImage(
    $overlayImage->getImagePixelColor( 0, 0 ),
    0, round( $fuzz * 655.35 )
);

// Set image overlay format
$overlayImage->setImageFormat('png');

// Put overlay image to base image
$finalImage->compositeImage(
    $overlayImage, Imagick::COMPOSITE_DEFAULT,
    $overlayLeft,
    $overlayTop
);

// Set output image format
$finalImage->setImageFormat('png');

// Prepare image and publish!
header('Content-type: image/png');
echo $finalImage;

这不是最好的结果,因为我不知道更好的方法来实现这一点。以下是我的结果:

以下是PHP:

<?php

/** Set source image location **/
$baseImageSource    = 'http://q/stock-photos/tux.png';
$overlayImageSource = 'http://q/stock-photos/firefox-logo-small.jpg';

/** Overlay image configuration **/
// Set this value between 0 and 100. 10 will doing great
$fuzz = 10;

// Set position of overlay image, from top and left;
$overlayTop  = 240;
$overlayLeft = 200;


/** Core program **/

// Create Imagick object for source image
$overlayImage = new Imagick( $overlayImageSource );
$finalImage = new Imagick( $baseImageSource );

// Remove overlay image background
$overlayImage->paintTransparentImage(
    $overlayImage->getImagePixelColor( 0, 0 ),
    0, round( $fuzz * 655.35 )
);

// Set image overlay format
$overlayImage->setImageFormat('png');

// Put overlay image to base image
$finalImage->compositeImage(
    $overlayImage, Imagick::COMPOSITE_DEFAULT,
    $overlayLeft,
    $overlayTop
);

// Set output image format
$finalImage->setImageFormat('png');

// Prepare image and publish!
header('Content-type: image/png');
echo $finalImage;


您可以使用PHP GD或ImageMagick。你试过了吗?我试过GD,但效果不好;用GD创建的透明图像的边缘看起来不平滑。嗯,我需要指导才能开始。也许你有什么想法?我还没有用ImageMagick尝试过,因为我还没有找到方法。我试过使用ImageMagick,结果非常好,非常平滑和干净。但我们有一个问题:因为有一部分的标志是白色的,它也被删除。但是如果你真的不介意,请告诉我,我会写完整的答案。你可以使用PHP GD或ImageMagick。你试过了吗?我试过GD,但效果不好;用GD创建的透明图像的边缘看起来不平滑。嗯,我需要指导才能开始。也许你有什么想法?我还没有用ImageMagick尝试过,因为我还没有找到方法。我试过使用ImageMagick,结果非常好,非常平滑和干净。但我们有一个问题:因为有一部分的标志是白色的,它也被删除。但是如果你真的不介意,请告诉我,我会写完整的答案。你可以使用PHP GD或ImageMagick。你试过了吗?我试过GD,但效果不好;用GD创建的透明图像的边缘看起来不平滑。嗯,我需要指导才能开始。也许你有什么想法?我还没有用ImageMagick尝试过,因为我还没有找到方法。我试过使用ImageMagick,结果非常好,非常平滑和干净。但我们有一个问题:因为有一部分的标志是白色的,它也被删除。但是如果你真的不介意,请告诉我,我会写完整的答案。你可以使用PHP GD或ImageMagick。你试过了吗?我试过GD,但效果不好;用GD创建的透明图像的边缘看起来不平滑。嗯,我需要指导才能开始。也许你有什么想法?我还没有用ImageMagick尝试过,因为我还没有找到方法。我试过使用ImageMagick,结果非常好,非常平滑和干净。但我们有一个问题:因为有一部分的标志是白色的,它也被删除。但是如果你真的不介意的话,请告诉我,我会写完整的答案。