读书人

知道一个位图结构体的指针 怎么操作这

发布时间: 2013-09-11 16:26:28 作者: rapoo

知道一个位图结构体的指针 如何操作这个位图
我想在图上叠加点东西

VB是下面这样写的
好像是通过指针取出来,画点东西,再放回去
不懂c# 怎么写 麻烦指点一下


'ABitmap位图结构体的指针,picHook是个pictureBox
Dim bmp As BITMAP
Dim pts As Long

CopyMemory VarPtr(bmp), ABitmap, Len(bmp)
With picHook
.Cls
.Width = bmp.bmWidth
.Height = bmp.bmHeight
.Image , bmp.bmWidthBytes * bmp.bmHeight, ByVal bmp.bmBits
.PaintPicture Me.Icon, 10, 10
.CurrentX = 20
.CurrentY = 20
picHook.Print "Time Stamp: " & Format(LongLongToDouble(APTSLow, APTSHigh), "0.000000")
GetBitmapBits .Image, bmp.bmWidthBytes * bmp.bmHeight, ByVal bmp.bmBits
End With

[解决办法]
你问这样的问题十有八九会没人回答的
不信你看
[解决办法]
C#在图上画东西可以用GDI+的

Bitmap source=new Bitmap("图片路径");
Graphics surface=Graphics.FromImage(source);
surface.DrawString("Time Stamp:.....",new Font("宋体",12f),Brushs.Red,new PointF(20,20));
source.Save("新图路径");
surface.Dispose();
source.Dispose();

[解决办法]
C#不需要这么麻烦,直接从Bitmap上获取Graphic,然后绘制你要的东西,再转换成新的Bitmap即可。
[解决办法]
你要对图片操作可以直接使用GDI啊,通过图片获得Graphic 然后通过Graphic的 方法来绘制你想要的东西啊,具体参考下:
http://www.cnblogs.com/zhili/archive/2013/05/24/3096101.html
[解决办法]
如果不是为了追求极致的性能,建议不要用指针。
------解决方案--------------------


用这个类转换试下:
http://www.emoticode.net/c-sharp/convert-a-dib-to-a-system-drawing-bitmap.html
(拷贝到105行 Another approach.... 就可以了)
调用方法:
Bitmap xxx = DibToBitmap.Convert(ptr);
[解决办法]
积分是小意思,你给个地址,我直接把文件EM给你。把图像转换在数组后,可以在数组上进行计算后修改,甚至输出成其它的数组,完成计算后,再把结果重新转换成位图即可

读书人网 >C#

热点推荐