4

実際の画像のように動作するが存在しない html の空の画像を偽造することは可能ですか?

たとえば、200x150px の画像である必要があるレスポンシブ列があります (レスポンシブであるwidth: 100%; height: auto;ため、スタイルが設定されます)。持ってる。

次のようなイメージタグを試してみましたが、それが原因で機能しませんheight: auto。その奇妙な src については、これを見てください。

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

PHPで空のpngを生成することは可能でしょうか?

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

編集: サービスplacehold.itについて言及した人もいます。基本的に、それはまさに私が必要とするものです (ほとんどの場合、絶対に十分です) が、これは WordPress プラグイン用であるため、インターネット接続なしでローカルでも実行する必要があります。外部サービスを使用しないソリューションが最適です。

4

2 に答える 2

2

これは私が思いついた解決策です(そのサイズの完全に透明な画像):

<?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="" />
于 2015-11-17T11:01:48.317 に答える