私の質問は非常に単純です。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. Flex:GUIDをBase64に変換する
- 3. イメージをbase64に変換するツール
- 4. Gtk.Imageをbase64に変換する方法
- 5. ImageMagickコードをGD(php)に変換
- 6. JavaのBase64 Stringから変換する
- 7. Goテスト出力をXUnitに変換
- 8. base64をReact NativeのBlobに変換するには?
- 9. JavaScriptでファイルをbase64に変換するには?
- 10. イメージをjavaのbase64文字列に変換するには?
- 11. JavaScriptを使用してローカル画像をbase64に変換する
- 12. ビデオをbase64データに変換する方法
- 13. Base64文字列をPNGファイルに変換する
- 14. 16進数をBase64 Pythonに変換する際のエンコーディングエラー
- 15. イメージをxamarin.androidでbase64に変換する方法は?
- 16. バイナリファイルをBase64文字列に変換する
- 17. バイト配列をBase64に変換するandroidの文字列
- 18. iPhoneのbase64イメージのビューを変換するには?
- 19. クライアント側のコードでバイナリファイルをBase64に変換する
- 20. base64バイト配列をイメージに変換する
- 21. base64でエンコードされたメールをテキストに変換する
- 22. 文字列base64をファイルvbに変換する#
- 23. 列全体をBase64文字列に変換する方法は?
- 24. NSStringをXMLシリアル化用のBase64データに変換する
- 25. cで画像にbase64を変換する#
- 26. Carrierwaveのbase64イメージをStringIOに変換する
- 27. byte []をデータ用のBase64文字列に変換する
- 28. diff出力をJavaでHTMLに変換するには?
- 29. javaパースhtml + cssと出力を別のlangに変換する
- 30. Get-ChildItemの出力を文字列[]に変換する
'imagedestroy($ gdImg)'を呼び出すか、 'ob_end_clean()'を呼び出す必要がありますか? – user3442612
@ user3442612使用後に手動でイメージを破壊することをお勧めします。私はこの短いサンプルには適切だとは思わないが、 "正しい方法"をするために追加する予定だ。ありがとう。 – Lachmanski