我能够访问文件的二进制数据并将其存储在类似的可变性中
s = File.binread("sample_22122015_03.jpg")
bits = s.unpack("B*")[0]
位点具有这样的数据" 101001001010100100 ........"
但是,我想做一些更改,然后再次将二进制数据写回新图像,但我无法。
我正在使用
File.open('shipping_label_new.jpg', 'wb') do|f|
f.write(Base64.decode64(bits))
end
,但它不起作用,我看到图像损坏了。
尝试此代码
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
String.unpack
的反面是 Array.pack
:
:007 > bits = 'abc'.unpack("B*")
=> ["011000010110001001100011"]
:008 > bits.pack("B*")
=> "abc"