base64 でエンコードされた画像データを含むファイルがあります: ~/dog/1.jpg
私は SSH 経由でそこにデータを置き、データを Base 64 でエンコードしたので、ターミナルで安全に転送できます。Base64 イメージ データは破損していないと想定します。
画像データを他のサーバーに渡したので、ファイルの内容をデコードし、エンコードされたファイルをデコードされたファイルで上書きする必要があります。
また、リモート サーバーでは base64 コマンドが使用できないため、使用できません。
ファイルの内容を base64 デコードし、エンコードされたファイルの内容をデコードされた内容で上書きするにはどうすればよいでしょうか (できれば Perl を使用)。
これが今私が持っているものです...
# Decode image data
poo=$(cat ~/dog/1.jpg | perl -MMIME::Base64 -ne 'printf "%s\n",decode_base64($_)');
# Write decoded data to file
echo $poo >| ~/dog/1.jpg
これによりファイルは上書きされますが、画像は適切にデコードされません。
答え1
perl -MMIME::Base64 -i -0777ne 'print decode_base64($_)' ~/dog/1.jpg
中間ファイル (変数または一時ファイル) を使用する必要がなくなり、デコードされたファイルが元の jpeg ファイルに保存されます。