php – 响应假/占位符图像

是否有可能伪造html中的空图像,其行为类似于真实的但不存在?

例如,我有一个响应列,其中应该是一个200×150像素的图像(得到样式:宽度:100%;高度:自动;因为它的响应)…但如果没有图像,它应该放置一个占位符,完全假货真正的200×150像素大小的图像所具有的大小.

我试过像下面这样的图像标签,但由于它的高度不起作用:auto.关于那个奇怪的src看看this.

<img src="//:0" alt="" width="200" height="150" />

是否有可能用PHP生成一个空的png?

<img src="fake.php?s=200x150" alt="" />

编辑:有些人提到服务placehold.it.基本上这正是我需要的(在大多数情况下绝对足够),但因为这是一个WordPress插件,它也应该在本地运行,而不是互联网连接. Best是没有外部服务的解决方案.

最佳答案 这是我提出的解决方案(该尺寸的完全透明图像):

<?php

    // Image size
    $imageWidth = is_numeric( $_GET[ 'w' ] ) ? $_GET[ 'w' ] : 0;
    $imageHeight = is_numeric( $_GET[ 'h' ] ) ? $_GET[ 'h' ] : 0;

    // Header
    header ('Content-Type: image/png');

    // Create Image
    $image = imagecreatetruecolor( $imageWidth, $imageHeight );
    imagesavealpha( $image, true );
    $color = imagecolorallocatealpha($image, 0, 0, 0, 127);
    imagefill($image, 0, 0, $color);

    // Ouput
    imagepng( $image );
    imagedestroy( $image );

?>

也可以用一种颜色填充图像:

<?php

    // Image size
    $imageWidth = is_numeric( $_GET[ 'w' ] ) ? $_GET[ 'w' ] : 0;
    $imageHeight = is_numeric( $_GET[ 'h' ] ) ? $_GET[ 'h' ] : 0;

    // Header
    header ('Content-Type: image/png');

    // Create Image
    $image = imagecreatetruecolor( $imageWidth, $imageHeight );
    imagesavealpha( $image, true );
    $color = imagecolorallocatealpha($image, 180, 180, 180, 0);
    imagefill($image, 0, 0, $color);

    $text_color = imagecolorallocatealpha( $image, 255, 255, 255, 50 );
    imagestring($image, 1, 5, 5,  $imageWidth . ' x ' . $imageHeight, $text_color);

    // Ouput
    imagepng( $image );
    imagedestroy( $image );

?>

用法是:

<img src="placeholder.php?w=350&h=250" alt="" />
点赞