日期:2014-05-17  浏览次数:20712 次

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

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
------解决方案--------------------
如果不是为了追求极致的性能,建议不要用指针。
------解决方案--------------------