首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2013-09-11 
知道一个位图结构体的指针 如何操作这个位图我想在图上叠加点东西VB是下面这样写的 好像是通过指针取出来,

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

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给你。把图像转换在数组后,可以在数组上进行计算后修改,甚至输出成其它的数组,完成计算后,再把结果重新转换成位图即可

热点排行