我想要实现两个目的,一个是将指定的文字写到图像里,另一个是将事先绘制好的线条图放进图像相应的位置。只需要BMP 24bit的。不知道哪位大哥能告诉我怎么办?如果是用点阵直接写进BMP数组的话就算了。API应该可以实现,但我不太清楚怎用。另外,有没有不用API的方法?

解决方案 »

  1.   

    似乎不需要,文字可以Print,其他可以Pset...
      

  2.   

    用picturebox 的print方法可以
    也可以用API函数Textout
      

  3.   

    用API的TextOut或DrawText可以写,不过这两个函数是通过读取Windows的字库文件将字符映射到目标设备,所以文字后面的线条会被遮盖掉。
    你可以使用UCDOS自带的汉字库,另写一个过程将汉字的点阵用PSET方法写到PICTUREBOX里。汉字点阵的位置可以通过其机内码找到(通过区位码进行换算,许多网站上都有这个算法)。
      

  4.   

    看来上面几位误解了我的意思,在PictureBox中显示文字标注,这很容易,我也知道用Print,问题是显示之后如何将标注的图像保存为文件,用Savepicture是无法保存Print产生的文字的!而用Ucdos的汉字库点阵我在QB中就用过了,但我不想用这种方法,太麻烦了,而且太落后了!对不同字体要不同的字库!
      

  5.   

    是吗?你保存的是Picture对象吧。其实对PictureBox的作图内容全部都在Image对象中。你要保存的是PictureBox.Image而并非PictureBox.Picture。在保存前还要用PaintPicture在PictureBox上画一下Picture的内容,以便让picture对象的内容映射到Image上。
      

  6.   

    to pigpag(噼里啪啦) 
     还是不行呀!按照你的说法,我是这么写的!请看下面的程序,
      Picture1.Print "Hello!"
      Picture1.PaintPicture Picture1.Picture, 0, 0
      SavePicture Picture1.Image, "C:\Test.bmp"仍然无法保存文字
      

  7.   

    ?!?!我弱了……?
    我自己瞧瞧(不过我不在我自己家,这个电脑没VB……)但是用Print绝对能够打印字符,并能保存起来的。我编过一个写化学式的程序,其中的“导出到图片”我就是用Print+SavePicture做的。绝对能行!
      

  8.   

    我明白了,还少了一句!
    picture1.autoredraw=true
      

  9.   

    !!!你写的当然不行啦!!!文字岂不被你的图片覆盖掉啦?!  Picture1.PaintPicture Picture1.Picture, 0, 0
      Picture1.Print "Hello!"
      SavePicture Picture1.Image, "C:\Test.bmp"这样就能行