有人可以解释我如何将图像转换为字节数组? 我需要这个理论。 我想使用图像进行AES加密{VB .Net),所以在我使用OpenFile对话框后,我的应用程序将加载图像,然后将其处理成字节数组,但我需要该过程的解释(像素如何转换为字节数组) 感谢您的回答,并对初学者问题感到抱歉。 参考链接接受:)处理图像到字节数组的说明
-1
A
回答
0
每个像素是一个字节和图像是由3或4个字节,取决于其模式。某些图像每像素有3个字节(与红色,贪婪和蓝色有关),其他格式可能需要4个字节(ALpha通道,R,G和B)。
您可以使用类似:
Dim NewByteArray as Byte() = File.ReadAllbytes("c:\folder\image")
的NewByteArray将图像的每一个字节得到满足,并且需要使用AES,无论其位置或含义来处理它们。
1
当您通过File.ReadAllBytes()从图像文件中读取字节时,它们的含义取决于图像的文件格式。
图像文件格式(例如位图,PNG,JPEG2000)定义了像素值如何转换为字节,反之亦然,您如何从字节中获取像素值。
PNG和JPEG格式是压缩格式,所以你很难编写代码来做到这一点。对于位图而言,这将是相当简单的,因为它是一种简单的格式。 (见维基百科)
但它更简单。您可以使用.NET的Bitmap
类将任何常见图像文件加载到内存中,然后使用Bitmap.GetPixel()
通过它们的x,y坐标访问像素。尽管如此,
Bitmap.GetPixel()
对于较大的图像速度较慢。为了加快速度,您需要直接在内存中访问像素的原始表示。无论您使用Bitmap类加载何种图像,它总是在内存中为其创建一个Bitmap表示。其确切的布局取决于Bitmap.PixelFormat
。您可以使用像this这样的模式访问它。工作流程如下:
- 使用
Bitmap.LockBits()
和Marshal.Copy()
将存储位图复制到字节数组。 使用例如从字节阵列提取R,G,B值。这个公式中的
PixelFormat.RGB24
情况:// Access pixel at (x,y) B = bytes[bitmapData.Scan0 + x * 3 + y * bitmapData.Stride + 0] G = bytes[bitmapData.Scan0 + x * 3 + y * bitmapData.Stride + 1] R = bytes[bitmapData.Scan0 + x * 3 + y * bitmapData.Stride + 2]
或为
PixelFormat.RGB32
:// Access pixel at (x,y) B = bytes[bitmapData.Scan0 + x * 4 + y * bitmapData.Stride + 0] G = bytes[bitmapData.Scan0 + x * 4 + y * bitmapData.Stride + 1] R = bytes[bitmapData.Scan0 + x * 4 + y * bitmapData.Stride + 2] A = bytes[bitmapData.Scan0 + x * 4 + y * bitmapData.Stride + 3]
相关问题
- 1. GDI +如何处理图像的字节数组?
- 2. 字节数组图像到位图
- 3. 字节数组到位图图像
- 4. 图像的字节数组
- 5. 图/ Django请求处理的说明?
- 6. 字节数组到图像转换
- 7. 字节数组到WriteableBitmap图像IValueConverter WP7
- 8. Silverlight 4,图像到字节数组
- 9. .NET核心字节数组到图像
- 10. 字节数组到图像对象
- 11. JavaFx图像到字节[]数组(闭合)
- 12. 无法处理的字节数组
- 13. iphone - 数字图像处理
- 14. Python多处理pool.map说明
- 15. 将图像添加到组件列表中 - 组件说明
- 16. Java字节数组和DataOutputStream处理
- 17. Smooks如何处理字节数组
- 18. 转换字节数组图像并返回到字节数组,值改变
- 19. 数组函数(图像处理项目)
- 20. Gdiplus ::来自字节数组的图像
- 21. 字节数组在J2ME中的图像?
- 22. 的SqlDataSource - UpdateParameters与图像字节数组
- 23. 图像到字节数组到字符串(反之亦然)
- 24. 处理:曲线上的透明图像
- 25. 如何在将字节数组转换为图像时处理错误?
- 26. 节点JS中的图像处理
- 27. 在图像视图中显示图像的字节数组
- 28. 在rails/paperclip中处理图像数组
- 29. android将图像读入字节数组和最后一个字节的图像
- 30. 重建字节数组图像
您可以直接使用该文件内容的字节数组。 –
使用'File,ReadAllBytes()'它只是屏幕上的像素 – Plutonix