ImageBMP()関数は、BMP形式で画像を保存するために使用されます。基本的な使用法は次のとおりです。
bool imagebmp ( resource $image [, string $filename ] )
$画像:必須。画像リソース、通常、 ImageCreateefrom*()関数によって生成される画像リソース。
$ filename :オプション。画像のファイル名(パス)を保存します。このパラメーターが省略されている場合、画像はファイルとして保存される代わりにブラウザに出力されます。
この関数を使用して画像を保存すると、多くの場合、一般的な問題が発生します。保存されたファイルを正しく読み取ることはできません。または、画像ファイルが予想される形式で保存されません。現時点では、問題は多くの場合、ファイル拡張子にあります。
ImageBMP()関数自体は非常に簡単な関数であり、提供しているファイル名に従って画像を保存します。ファイル名が拡張機能として.BMPを使用しているが、保存された画像を正しく表示または開くことができないことがわかった場合、次の問題が原因である可能性があります。
ファイル拡張子はコンテンツ形式と一致しません:ファイル拡張子はファイル名の一部のみであり、ファイルコンテンツの形式を直接決定しません。場合によっては、ファイル名が.bmpであっても、 imagebmp()関数が正しく実行できない場合、保存されたファイル形式は標準のBMP形式では不平等になる可能性があります。
パスの問題:ファイルパスに違法な文字またはパス許可の問題が含まれている場合、画像ファイルが正常に保存される可能性もあります。
ファイル許可の問題:ファイルが保存されているディレクトリには、書き込みアクセス許可がない場合があり、PHPはその場所でファイルの作成に失敗します。
最初に、提供したファイルパスとファイル名を確認して、ファイルパスが有効であることを確認し、ファイル拡張子が実際に.bmpであることを確認します。例えば:
$image = imagecreate(100, 100); // aを作成します 100x100 画像
$filename = 'path/to/image.bmp';
if (imagebmp($image, $filename)) {
echo "画像は正常に保存されます!";
} else {
echo "画像の保存は失敗しました!";
}
$ filename変数に有効なパスと.bmp拡張機能が含まれていることを確認してください。 .bmp拡張機能がなければ、 imagebmp()はファイル形式を認識しないため、障害が発生します。
imagebmp()関数を呼び出す前に、画像リソースが正常に作成されているかどうかを確認します。画像リソースが空の場合、関数は保存操作を実行できません。画像リソースの有効チェックは、保存する前に実行できます。
if (!$image) {
die("画像の作成に失敗しました!");
}
ターゲットディレクトリに書き込み許可があることを確認してください。書き込み許可がない場合、PHPは指定された場所にファイルを保存できません。コマンドラインを介してディレクトリアクセス許可を変更できます(Linuxシステムを例にとる):
chmod 777 path/to/directory
または、PHPコードを使用して、ターゲットディレクトリが書き込み可能かどうかを確認します。
if (!is_writable('path/to/directory')) {
die("ターゲットディレクトリは書き込みできません!");
}
相対パスがファイルの節約を失敗させることがある場合があります。これを回避するために絶対パスを使用してみてください。絶対パスはより明確であり、パス解像度エラーを減らすことができます:
$filename = '/absolute/path/to/image.bmp';
保存されたファイルが実際にBMP形式であることを確認してください。いくつかのオンラインツールまたは画像表示ツールを使用して、ファイル形式を確認できます。ファイル形式が正しくないと疑われる場合は、ファイルタイプ検証ツールで確認することができます。
$image_info = getimagesize($filename);
if ($image_info['mime'] !== 'image/bmp') {
die("保存されたファイルはそうではありません BMP 形式!");
}