私の質問は非常に単純です。imagepng
/imagejpgの出力をbase64に変換したいのですが、どうすればいいですか?正しい方法は出力バッファをキャプチャすることですか?ありがとう。GD出力をbase64に変換する
21
A
答えて
50
imagejpeg
/imagepng
はデータを返しません。出力ストリーム(またはファイル)に直接画像データを書き込みます。
このデータをbase64でエンコードする場合、最も簡単な方法は、PHPを使用し、次に$image_data
でbase64_encode
を使用することです。
ob_start();
imagejpeg ($img);
$image_data = ob_get_contents();
ob_end_clean();
$image_data_base64 = base64_encode ($image_data);
4
base64でエンコードされた画像の最も一般的な使用例は、HTML出力です。私はこのケースのためのより完全なソリューションを提供したいと思います。私は出力画像フォーマットを切り替える機能も追加しました。
// Example
$gdImg = imagecreate(100, 100);
imagecolorallocate($gdImg, 0, 0, 0);
echo gdImgToHTML($gdImg);
imagedestroy($gdImg);
// Create an HTML Img Tag with Base64 Image Data
function gdImgToHTML($gdImg, $format='jpg') {
// Validate Format
if(in_array($format, array('jpg', 'jpeg', 'png', 'gif'))) {
ob_start();
if($format == 'jpg' || $format == 'jpeg') {
imagejpeg($gdImg);
} elseif($format == 'png') {
imagepng($gdImg);
} elseif($format == 'gif') {
imagegif($gdImg);
}
$data = ob_get_contents();
ob_end_clean();
// Check for gd errors/buffer errors
if(!empty($data)) {
$data = base64_encode($data);
// Check for base64 errors
if ($data !== false) {
// Success
return "<img src='data:image/$format;base64,$data'>";
}
}
}
// Failure
return '<img>';
}
関連する問題
- 1. GD-Sharpストリームをビットマップに変換する
- 2. base64イメージをHTML入力ファイルタグに変換するには?
- 3. 角材ファイルの入力をbase64形式に変換する
- 4. ImageMagickコードをGD(php)に変換
- 5. Javascript URLをBase64イメージに変換する
- 6. Flex:GUIDをBase64に変換する
- 7. Gtk.Imageをbase64に変換する方法
- 8. SVG dataUrlをbase64に変換する
- 9. イメージをbase64に変換するツール
- 10. MediaRecorderオーディオをbase64に変換する
- 11. base64 svgイメージをbase64イメージpngに変換する方法
- 12. 異なる出力(BASE64)
- 13. 出力をテーブルに変換する
- 14. R:Rmongo出力をデータフレームに変換する
- 15. C#コンソール出力をテキストボックス出力に変換する
- 16. Bitnami WAMP、Windows 10でgdイメージを出力するには?
- 17. ローカルimgをBase64文字列に変換
- 18. JavaのBase64 Stringから変換する
- 19. R変換六角base64で
- 20. Base64変換の小数値
- 21. ローカルイメージBase64変換エラーJavascript
- 22. マイクオーディオ入力をLINEAR16エンコーディングに変換する方法javascriptを使用してBASE64文字列を入力する
- 23. URLからbase64に抽出された画像を変換する
- 24. Base64はnode-gdを使ってpngバッファをエンコードします
- 25. イメージのサイズ変更されたBase64出力を表示
- 26. Goテスト出力をXUnitに変換
- 27. Excelへの出力をLibreOfficeに変換
- 28. サーバを使わずに画像をbase64に変換する
- 29. Base64に変換するとイメージのサイズを小さくする
- 30. Firehose変換出力のフォーマット
'imagedestroy($ gdImg)'を呼び出すか、 'ob_end_clean()'を呼び出す必要がありますか? – user3442612
@ user3442612使用後に手動でイメージを破壊することをお勧めします。私はこの短いサンプルには適切だとは思わないが、 "正しい方法"をするために追加する予定だ。ありがとう。 – Lachmanski