如何将存储在字符串中的 png 十六进制值写入 Ruby 中的 png 文件?
How do I write png hex values stored in a string to a png file in Ruby?
我有一个 png 图像十六进制值存储在一个字符串中,但我想将其写入一个新的 png 文件以供查看。我目前使用下面的 Ruby 代码(带有一个小的 png 示例),但是当我检查新 png 文件中的输出时,十六进制值略有偏差。我哪里错了?
png_hex = "89504e470d0a1a0a0000000d494844520000000d0000000d08030000004535144e0000000774494d4507d7041517171c5943ea76000000097048597300000b1100000b11017f645f910000000467414d410000b18f0bfc610500000015504c544500000086c1e01544706ba4da4a85c6386c9f427ab6583bfce90000000174524e530040e6d866000000434944415478da558d41120030040395c8ff9f5cd421dd0b6b02b3e198c24f1d22c72996bed1683c89ae3d2f4856ed6570795b317dec0da45aba04ad2e761cfb7a4228bb5cb30147915c409a0000000049454e44ae426082"
File.open("temp.png", "w"){|fh|
fh.print png_hex.scan(/.{2}/).map{|u| u.to_i(16)}.pack("C*")
}
我有一个 png 图像十六进制值存储在一个字符串中,但我想将其写入一个新的 png 文件以供查看。我目前使用下面的 Ruby 代码(带有一个小的 png 示例),但是当我检查新 png 文件中的输出时,十六进制值略有偏差。我哪里错了?
png_hex = "89504e470d0a1a0a0000000d494844520000000d0000000d08030000004535144e0000000774494d4507d7041517171c5943ea76000000097048597300000b1100000b11017f645f910000000467414d410000b18f0bfc610500000015504c544500000086c1e01544706ba4da4a85c6386c9f427ab6583bfce90000000174524e530040e6d866000000434944415478da558d41120030040395c8ff9f5cd421dd0b6b02b3e198c24f1d22c72996bed1683c89ae3d2f4856ed6570795b317dec0da45aba04ad2e761cfb7a4228bb5cb30147915c409a0000000049454e44ae426082"
File.open("temp.png", "w"){|fh|
fh.print png_hex.scan(/.{2}/).map{|u| u.to_i(16)}.pack("C*")
}