このコードでは、Ruby を使用して PDF ファイルを png ファイルの「内側」に隠すことができないのはなぜですか?

概要

画像ファイル「kitten.png」の中に「hello_world.pdf」というファイルを隠そうとしています。私が使用しているコードは次のとおりです。

original_image_file = File.read("kitten.png")
hidden_file = File.read("hello_world.pdf")
output_file = "output.png"

separator = "*----------[#{hidden_file}]----------*"
output = [original_image_file, separator, hidden_file]

File.open(output_file,'wb') do |f_out|
    output.each do |f|
        f_out.puts f
    end
end

「output.png」をクリックすると元の画像 (kitten.png) が表示されるはずですが、ファイル拡張子を .pdf に変更して「output.pdf」をクリックすると、「hello_world.pdf」が表示されるはずです。 。

ただし、output.png または Output.pdf をクリックすると、どちらの場合も画像または PDF を表示できないと表示されます。これがなぜ正しく機能しないのかわかりますか?

解決策

区切り文字は必要ありません。 2 つのファイルをさまざまな方法で背中合わせに追加するだけで、さまざまなビューアで機能する可能性がありますが、すべてのビューアで機能するとは限りません。したがって、ここで猫は Firefox では PDF、MS Edge では PNG ですが、ISO PDF 形式ではないため、Acrobat で動作する保証はありません。

視聴者によっては、どちらかが両方のように見える場合があります。

他の人がその理由を説明するかもしれません。

したがって、全体的に最も簡単にだまされるのは、PDF を画像に変換する画像ビューアである Firefox や PDFjs などの Web ブラウザです。