我是C#的新手,我試圖從原始二進制流生成圖像。該文件是純二進制文件,擴展名爲.bin,以8 bpp 2-2-2-2格式編碼;它包含每個RGB顏色2位和不透明度2位。我還沒有嘗試過任何東西,因爲我真的不知道從哪裏開始;我搜索了之前發佈的問題,但沒有找到有用的東西。我的應用程序將接收一個串行流,並且我必須從文件中爲每個像素使用一個字節生成800 x 600圖像。任何想法至少會讓我開始?如何將2-2-2-2格式的原始二進制圖像轉換爲C#中的位圖?
2
A
回答
1
我會從這樣的事情開始。
public void ImageTest()
{
var bitmap = new Bitmap(800,600);
var stream = new BinaryReader(new FileStream("pathtofile",FileMode.Open));
byte currentbyte;
int x = 0;
int y = 0;
while((currentbyte = stream.ReadByte()) != EndOfImageMarker)
{
bitmap.SetPixel(x,y,DecodeByteToColor(currentbyte));
x++;
y++;
if (x == 799)//next line
{
x = 0;
}
if (y == 599)
{
break;
}
}
bitmap.Save("Path to new file...");
}
private Color DecodeByteToColor(byte currentbyte)
{
const int adjustment = 10;
var red = (currentbyte & 0x3) * adjustment;
var green = (currentbyte << 2 & 0x3) * adjustment;
var blue = (currentbyte << 4 & 0x3) * adjustment;
var alpha = (currentbyte << 6 & 0x3) * adjustment;
return Color.FromArgb(red, green, blue, alpha);
}
它已經有一段時間了,因爲做位移的東西我可能會讓操作員從你需要的東西后退。目的是要抓住前兩位,並將其轉移到接下來的兩位。調整將決定每轉換一次全部值的每個位的顏色。
+0
位移是反向的,調整應該是0x01010101。否則,這應該工作(儘管緩慢,「Bitmap.LockBits」會比許多對「Bitmap.SetPixel」的調用快得多)。 – 2011-05-31 19:04:38
相關問題
- 1. 如何在iOS中將圖像轉換爲二進制格式?
- 2. 如何將二進制格式的圖像轉換爲可分析的圖像?
- 3. 如何將位圖圖像轉換爲android中的二進制圖像?
- 4. 將原始二進制數據轉換爲圖像文件?
- 5. 轉換二進制值位圖圖像
- 6. 使用xcode將圖像轉換爲二進制格式
- 7. 如何將圖像轉換爲android中的base64二進制值?
- 8. 如何將protobuf圖轉換爲二進制格式?
- 9. 如何使用MFC將24位彩色圖像轉換爲二進制圖像?
- 10. 將二進制轉換爲圖像列表的位圖圖像。代碼錯誤
- 11. 將圖像轉換爲二進制數組和二進制數組轉換爲java中的圖像
- 12. 轉換爲圖像的二進制WPF;
- 13. 在OpenCV中將灰度圖像轉換爲二進制圖像
- 14. 在Matlab中將二進制圖像轉換爲灰度圖像
- 15. 如何使用ImageMagick或RMagick將圖像轉換爲1bit/px二進制位圖?
- 16. 將專有原始圖像格式轉換爲Adobe DNG
- 17. 如何反轉灰度圖像並將其轉換爲二進制圖像?
- 18. 將圖像(np.array)轉換爲二進制圖像
- 19. 如何將原始圖像轉換爲Python中的PNG?
- 20. 如何將原始數據轉換爲android中的圖像?
- 21. C++將二進制文件轉換爲圖像
- 22. 如何將二進制數據轉換爲圖像?
- 23. 計算機如何將圖像轉換爲二進制文件?
- 24. 如何將位圖轉換爲圖像
- 25. 將int []二進制數組轉換爲java中的圖像。
- 26. c#:如何將二進制從SQL Server轉換爲圖片框?
- 27. 如何將十進制轉換爲二進制的64位?
- 28. 如何將二維數組轉換爲c中的圖像#
- 29. C# - 如何將圖像轉換爲8位彩色圖像?
- 30. 如何使用C和GMP_Bignum將二進制原始數據轉換爲整數
想要顯示圖像還是要將其保存回光盤?如果你想顯示它,你是使用WinForms還是WPF? – 2011-05-31 17:03:24