5

サムネイルを作成するためにオンザフライで画像のサイズを変更する PHP 関数があります。

実際の画像ではなく生の画像ストリームを表示しているだけなので、問題があります。

私のコードは、サムネイルと呼ばれる関数を使用しています:

$thumbnail = thumbnail($item['filename'], 209, 137);
imagejpeg($thumbnail);

私は入れてみました:

header("Content-type: image/jpeg");

ただし、これはページ全体が画像であることを前提としています。私はここからどこへ行くべきか全く見当がつかない。これが必要なように見えますが、画像をディスクに保存したくありません。

4

3 に答える 3

14

あなたのどちらか

普通にやれよ

これは、 1 つのURL を指定して、1 つの画像のコンテンツを提供することを意味します。

<img src="myimage.php">

次のmyimage.phpようなスクリプトです。

header('Content-type: image/jpeg');
imagejpeg($thumbnail);
die;

この手法には、物事を行う通常の方法であるという利点があります。

また

画像をインラインで出力する

base64 でエンコードされた文字列としてコンテンツを出力するデータ urisを使用する

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot">

この手法は、小さな画像に最も適しています。

これには、すべての画像がメインの http リクエストにあるという利点がありますが、ページの編集/構築が難しくなり、ブラウザーのキャッシュの利点が無効になる可能性があるという (おそらくかなりの) 欠点があります (html ページ自体がキャッシュされている場合を除く)。

普通にいるほうが楽

質問のこのステートメントについて:

ただし、これはページ全体が画像であることを期待しているだけです

そうです - 通常の方法srcで、画像タグの属性を使用して php スクリプトを指定し、サーバーに画像のみを指定する場合、つまり、ブラウザで画像ファイルを指定した場合とまったく同じ応答になります。

別の方法で物事を行う正当な理由がない限り、「通常の」方法から始めるのが適切です。

于 2012-05-22T20:25:10.520 に答える
2

html img タグを php ファイルに向けることができます。

<img src='thumbnail.php?file=<?php echo $item['filename']; ?>' />

次に、phpファイルで画像を表示し、ヘッダーを変更します。これは、画像を表示するだけなのでです。

$thumbnail = thumbnail($_GET['filename'], 209, 137);
imagejpeg($thumbnail);

header("Content-type: image/jpeg");
于 2012-05-22T20:23:45.483 に答える
0

HTML の通常の画像と同じように画像を挿入し、別の PHP ファイルで画像を作成する必要があります。

image.php

<?php
$img = imagecreate(100,100); //Create an image 100px x 100px
imagecolorallocate($img, 255,0,0); //Fill the image red
header('Content-type: image/jpeg'); //Set the content type to image/jpg
imagejpeg($img); //Output the iamge
imagedestroy($img); //Destroy the image
?>

myWebpage.html

<img src="image.php" />
于 2012-05-22T20:26:16.203 に答える