我能够访问文件的二进制数据并将其存储在像
这样的变量中s = File.binread("sample_22122015_03.jpg")
bits = s.unpack("B*")[0]
其中bits的数据类似“101001001010100100 .......”
但是,我想做一些更改并再次将二进制数据写回新图像,但我无法做到。
我正在使用
File.open('shipping_label_new.jpg', 'wb') do|f|
f.write(Base64.decode64(bits))
end
但它不起作用,我发现图像已损坏。
答案 0 :(得分:0)
String.unpack
的反面是Array.pack
:
:007 > bits = 'abc'.unpack("B*")
=> ["011000010110001001100011"]
:008 > bits.pack("B*")
=> "abc"
答案 1 :(得分:0)
试试此代码
s = File.binread("test_img.jpg")
bits = s.unpack("B*")
File.open('new_test_img.jpg', 'wb') do|f|
f.write(bits.pack("B*"))
end