回答
对于你写的(太少)你可以创建Bitmap bmp = new Bitmap(200,200)
。
然后你可以根据你的文本数据使用bmp.SetPixel(x,y,color)
。
UPDATE:
假设了很多事情:
- 你有hexstr包含代表您的BMP十六进制数据
- hexstr由两个字符组(十六进制数据)
- 每个十六进制数据组的长度都是2或6个字符(如果十六进制值val已经是灰度值,则为2个字符,如果您有RGB值转换为灰色,则为6个字符凯尔)
第二次更新:
您的文件contanins 16x2450 = 39200像素,让你的形象不能200x200的。我认为它是200x192。
此代码的工作,即使我不明白什么样的形象代表......
你可以试试这个:
public Form1()
{
InitializeComponent();
string hexstr = FileToHexStr(path_to_file);
pictureBox1.Image = ConvertToBmp(hexstr, 200, 196, true);
}
private string FileToHexStr(string filename)
{
StringBuilder sb = new StringBuilder();
string[] f = File.ReadAllLines(filename);
foreach (string s in f) sb.Append(s.Trim().Replace(" ", ""));
return sb.ToString();
}
private byte[] StringToByteArray(string hex)
{
return Enumerable.Range(0, hex.Length)
.Where(x => x % 2 == 0)
.Select(x => System.Convert.ToByte(hex.Substring(x, 2), 16))
.ToArray();
}
private Bitmap ConvertToBmp(string hexstr, int width, int height, bool isGrayScaleString)
{
/// If hexstr is a color bitmap I assume that a single pixel
/// must be 3 values long (one for R, one for G, one for B);
/// if not, then every hex value is a pixel
int bpp = isGrayScaleString ? 1 : 3;
byte[] hexarr = StringToByteArray(hexstr);
// Check if string is correct
if (hexarr.Length != (width * height * bpp)) return null;
Bitmap bmp = new Bitmap(width, height);
int index = 0;
for (int i = 0; i < hexarr.Length; i += bpp)
{
int luma = (int)(isGrayScaleString ?
hexarr[index] :
// Formula to convert from RGB to Grayscale
// <see>http://www.bobpowell.net/grayscale.htm</see>
0.3 * hexarr[i] + 0.59 * hexarr[i + 1] + 0.11 * hexarr[i + 2]);
Color c = Color.FromArgb(luma, luma, luma);
bmp.SetPixel(index % width, index/width, c);
index++;
}
return bmp;
}
@marco:对不起,这里的互联网连接非常糟糕,我试试你的代码它ru ñ顺利),并做一些实验,我在网站上发现的代码早些时候..但我不能让它进入[形式设计](http://www.mediafire.com/?vby4p2dm3qddk11)我打算使用,, – ecaiseng 2011-05-15 22:35:21
@marco:我应该使用picturebox方法吗?当我使用action按钮将我的十六进制数据转换为图像时,代码显示错误编译...这是我根据您的代码尝试的代码... – ecaiseng 2011-05-15 22:41:26
@ marco:它显示错误在** buttonconvert_Click **方法&** buttonconvert **在线位图bmp = buttonconvert(hexstr,200,200,isGrayScale)... – ecaiseng 2011-05-15 22:57:10
- 1. 从十六进制
- 2. 使用十六进制的Java绘图
- 3. 十六进制串&十六进制
- 4. 将十进制转换为十六进制和十六进制
- 5. 经纬度从十六进制值
- 6. 十六进制
- 7. 十六进制
- 8. 十六进制
- 9. 将十六进制转换为二进制到十六进制?
- 10. 十六进制数的长度
- 11. 十六进制()参数不能转换为十六进制
- 12. 十六进制字符串到十六进制整数
- 13. 选择一个十六进制附近的十六进制数
- 14. 在十六进制图中绘制回归图
- 15. 从十六进制字符
- 16. 从RGBA到十六进制
- 17. 从十六进制值
- 18. 如何从十六进制NSString得到十进制整数int
- 19. 十六进制为十进制
- 20. 十六进制和十进制转换
- 21. 使用十进制或十六进制
- 22. Javascript十进制到十六进制
- 23. 转换十六进制到十进制
- 24. 从十六进制数据GREENTEL转换回纬度
- 25. 将浮点值转换为灰度十六进制颜色值
- 26. 从十六进制数据创建位图图像
- 27. 从十六进制到十进制,二进制到十进制和八进制到十进制程序C++
- 28. 将八进制数转换为十进制和十六进制
- 29. 将十六进制字符串转换为十六进制数据
- 30. Python - 从十六进制整数转换为十六进制字符串
请解释一下你正在试图做的好一点什么。图像是否应该以选定的字体/字体大小显示给定的文字? – 2011-05-05 11:04:39
ascii数据如何与像素颜色相关?你的数据如何? – Marco 2011-05-05 11:06:41
对不起,我误以ascii与十六进制,,我的任务在学校实际上要求我从十六进制数据做灰度图...你能帮我吗,我真的很迷惑, – ecaiseng 2011-05-13 17:50:10