3

元の正方形のタイルベースの画像レンダリングが画像の切り抜きになるように、サイトを再設計しようとしています...そのグリッドパターンを取り除くために.

元の姿はこんな感じ…

ここに画像の説明を入力

これが私がやろうとしていることの大まかなモックアップです:

ここに画像の説明を入力

そこで、背景が透明な画像のサムネイルを再保存しました...犬を見せたいだけで、正方形は透明で、サイトの背景が下に表示されます。

ここに画像の説明を入力

しかし、ページにレンダリングすると、この黒い背景になります。

ここに画像の説明を入力

私はCSSをチェックして、何らかのimgクラス、またはレンダリングされたコミックのクラスがあるかどうかを確認しました...またはブートストラップでさえ、背景色が黒に割り当てられている場所があるかどうかを確認しました(また、hexも検索しました)コード 000000) が見つかりませんでした...

なぜこれが起こっているのか知っていますか?

ありがとう!


編集:私は何かに気づきました...

上部の私のロゴは透明な背景でレンダリングされます...そして要素はpngファイルです...したがって、そのMIMEタイプはimage/pngです。

サムネイルを小さくするためにサムネイル作成スクリプトを使用していますが、現在、要素はthumer.phpであり、MIMEタイプのimage/jpegとして配置されています。

ここに画像の説明を入力

したがって、MIME タイプを変更するのは私のサムネイル作成スクリプトだと思います。

だから私はそれをチェックしました、そしてそれはファイルをjpegとして作成しています

//imagejpeg outputs the image
imagejpeg($img);

リサンプリングされた画像がpngとして出力されるように変更する方法はありますか?


サムネイル作成スクリプト:

    <?php
#Appreciation goes to digifuzz (http://www.digifuzz.net) for help on this

$image_file = $_GET['img']; //takes in full path of image
$MAX_WIDTH = $_GET['mw'];
$MAX_HEIGHT = $_GET['mh'];
global $img;

//Check for image
if(!$image_file || $image_file == "") { 
    die("NO FILE."); 
}

//If no max width, set one
if(!$MAX_WIDTH || $MAX_WIDTH == "") { 
    $MAX_WIDTH="100"; 
}

//if no max height, set one
if(!$MAX_HEIGHT || $MAX_HEIGHT == "") { 
    $MAX_HEIGHT = "100"; 
}

$img = null;
//create image file from 'img' parameter string
$img = imagecreatefrompng($image_file);

//if image successfully loaded...
if($img) {
    //get image size and scale ratio
    $width = imagesx($img);
    $height = imagesy($img);

    //takes min value of these two
    $scale = min($MAX_WIDTH/$width, $MAX_HEIGHT/$height);

    //if desired new image size is less than original, output new image
    if($scale < 1) {
        $new_width = floor($scale * $width);

        $new_height = floor($scale * $height);


        $tmp_img = imagecreatetruecolor($new_width, $new_height);

        //copy and resize old image to new image
        imagecopyresampled($tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

        imagedestroy($img);

        //replace actual image with new image
        $img = $tmp_img;
    }
}
//set the content type header
header("Content-type: image/png");

//imagejpeg outputs the image
imagealphablending($img, false);
imagesavealpha($img, true);
imagepng($img);

imagedestroy($img);

?>
4

1 に答える 1