图像与文字的合成

前几天要做一段程序,把文字和位图图像合成并保存为位图文件。但问了好久都没人给一个满意的答复,只好在黑暗中摸索,费了一番功夫,实现了图像与文字的合成,并且可用鼠标拖动文字。现在我把代码贴出,希望能给需要的朋友以帮助。

一、关键函数 1.

int SetDIBits(
    HDC hdc,         // 兼容DC的句柄
    HBITMAP hbmp,       // 兼容位图的句柄
    UINT uStartScan,     // 扫描起始行的编号
    UINT cScanLines,     // 扫描的行的数目
    CONST VOID *lpvBits,   // 位图缓冲区的指针,要求已经分配空间
    CONST BITMAPINFO *lpbmi, // 位图信息
    UINT fuColorUse      // 颜色格式
    );

这个函数把位图数据一个像素一个像素的贴到一个兼容位图上,hdc是选择了兼容位图的兼容DC。

2.

int GetDIBits(
     HDC hdc,      // 兼容DC的句柄
     HBITMAP hbmp,   // 兼容位图的句柄
     UINT uStartScan,  // 扫描起始行的编号
     UINT cScanLines,  // 扫描的行的数目
     LPVOID lpvBits,  // 位图缓冲区的指针,要求已经分配空间
     LPBITMAPINFO lpbi, // 位图信息
     UINT uUsage    // 颜色格式
     );

这个函数的作用和SetDIBits刚好相反,它把兼容位图内已存在的数据一个像素一个像素的拷贝到数据缓冲区(lpvBits)中。这样程序的实现就比较明朗了,首先根据位图的尺寸,创建一个兼容位图,然后把图片绘制到兼容位图,接着把文字也写到兼容位图上,然后再从兼容位图得到合成的数据。

时间: 2024-10-27 14:56:22

图像与文字的合成的相关文章

急求解决-求一个关于甲骨文文字识别的程序包,或者有关图像,文字的的识别的程序包。

问题描述 求一个关于甲骨文文字识别的程序包,或者有关图像,文字的的识别的程序包. 求一个关于甲骨文文字识别的程序包,或者有关图像,文字的的识别,文物的拼接累似的程序包. 解决方案 http://blog.csdn.net/manji_lee/article/details/9002228

使用科大讯飞语音SDK实现文字在线合成语音_Android

最近需要使用到语音播报的功能,在百度七武器百度语音和科大讯飞的语音当中考虑到准确性和专业性,选择了科大讯飞.科大讯飞所提供的android开发sdk有两种一种是集成了自身产品语音+的sdk,功能比较强大但是会初始化语音服务模块:另一种是纯开发sdk不集成产品只需要导入相应jar包就可以使用.考虑到只用到了语音合成的技术所以选择了第二种sdk. 具体代码如下所示: private SpeechSynthesizer mTts; private int isSpeaking = 0; mTts= S

Android编程开发实现TextView显示表情图像和文字的方法_Android

本文实例讲述了Android编程开发实现TextView显示表情图像和文字的方法.分享给大家供大家参考,具体如下: 从这个案例中我们可以学到当我们美化图片美化界面的时候可以在某一区域输入图片和文字混搭信息,第三张图片按比例缩小,第四张图像有超链接 布局文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.andro

ImageTTFText函数实现图像加文字水印

一个ImageTTFText函数包含了如下的参数,imagettftext (image,size,angle, x, y,color,fontfile,text)意思是 imagettftext() 将字符串 text 画到 image 所代表的图像上,从坐标 x,y(左上角为 0, 0)开始,角度为 angle,颜色为 color,使用 fontfile 所指定的 TrueType 字体文件. 根据 PHP 所使用的 GD 库的不同,如果 fontfile 没有以 '/'开头,则 '.ttf

PS合成照片文字非主流效果

  原图 最终效果图 1.在photoshop中打开图片,复制一层. 2.按ctrl+M,把复制后的图层明暗对比加大. 3.将副本层的图层模式改为排除, 这种色调如果你觉得可以了,就不需要再调节了.如果你觉得还不够另类就再调. 4.选择菜单"图像-调整-颜色替换". 5.再用曲线工具将图像的明暗对比度加强一下. 6.添加文字 文字的添加有一定的讲究,不能太呆板,不适合用宋体.仿宋之类的字体. 可以用一些活泼点的文字,能添彩不少. 排版也不能太死板,大家可以根据自己的喜好设置试试. 下面

《Adobe After Effects CS4经典教程》——1.3 创建合成图像和组织图层

1.3 创建合成图像和组织图层 工作流程的下一步就是创建合成图像.可以在合成图像中创建所有动画.图层和特效.After Effects合成图像同时具有空间尺度和时间尺度(时长). 合成图像包含一个或多个图层,它们排列在合成图像面板和Timeline(时间线)面板中.添加到合成图像中的素材项-例如静态图像.动画文件.音频文件.灯光图层.摄像层或者甚至是其他合成图像-将成为一个新的图层.简单项目可能仅包含一个合成图像,而一个精心制作的项目则可能包含几个合成图像,用以组织大量的素材或复杂的特效序列.

《Adobe After Effects CS4经典教程》——1.5 对合成图像作动画处理

1.5 对合成图像作动画处理 到此为止,您已经开始一个项目,创建了合成图像.导入了素材,并且应用了一些特效,一切显得很好.那么再来点动画怎么样?到目前为止,您仅应用了静态特效. 在After Effects中,可以使用传统的关键帧.表达式或者关键帧助理来让图层的多个属性随时间的变化而改变.通过本书您将体验多种这类方法.本练习将用关键帧使文字层的Position属性产生变化,然后采用动画预设,使屏幕上的文字像雨一般落下. Timeline面板 可以使用Timeline面板动态改变图层的属性并设置层

《Adobe After Effects CC 经典教程(彩色版)》——2.9 渲染合成图像

2.9 渲染合成图像 现在准备输出旅游节目标志.创建输出文件时,合成图像的所有图层,以及每个图层的蒙版.特效和属性都被逐帧渲染到一个或多个输出文件,或者渲染为一系列连续的文件(当需要渲染为图像序列时). 将最终合成图像制成电影文件可能需要几分钟或几小时,这取决于合成图像的画面尺寸.质量.复杂度以及压缩方式.将合成图像置于Render Queue(渲染队列)后即成为渲染项,它将按照赋给它的设置进行渲染. After Effects提供多种用于渲染输出的文件格式和压缩类型,采用何种格式取决于将来播放

《Adobe After Effects CC 经典教程(彩色版)》——1.5 对合成图像做动画处理

1.5 对合成图像做动画处理 目前为止,你已经着手一个项目,创建了合成图像,导入了素材,并且应用了一些特效.一切显得很好.但如果再来点动画怎么样?到目前为止,你仅应用了静态特效. 在After Effects中,可以使用传统的关键帧.表达式或者关键帧助手来让图层的多个属性随时间的变化而改变.通过本书你将体验多种这类方法.这个练习将用关键帧使文字层的Position属性产生变化,然后采用动画预设,使屏幕上的文字在屏幕上看起来像雨一般落下. 1.5.1 准备文字合成图像 对于这个练习,你将处理一个单