读书人

VC++中用CxImage如何给图片上加倾斜一

发布时间: 2013-09-05 16:02:07 作者: rapoo

VC++中用CxImage怎么给图片上加倾斜一定角度的水印?
用CxImage怎么给图片上加倾斜一定角度的水印?如我要在用CxImage合成的图片上加上一行倾斜45度的文字,只会用CxImage::rotate 方法旋转图片45度,有什么方法只旋转一行字?
下边是网上找的用CxImage加水印的方法,但是是加水平的水印,没找到使水印倾斜一定角度的方法,求助怎么在图片上加倾斜一定角度的一行字?最好提供下C++示例代码,多谢。

CxImage imagesy;
if( !imagesy.Load("C://z2.jpg", CXIMAGE_FORMAT_JPG))
{
return TRUE;
}
if (imagesy.IsValid())
{
CxImage::CXTEXTINFO textword;

imagesy.InitTextInfo( &textword );

_stprintf( textword.lfont.lfFaceName, _T("Times New Roman"));
textword.lfont.lfCharSet = GB2312_CHARSET ;
textword.lfont.lfWeight = 8 ;
textword.lfont.lfItalic = 0 ;
textword.lfont.lfUnderline = 0 ;
textword.fcolor = RGB( 255,255,160 );
textword.bcolor = RGB( 0, 80,160 );
textword.opaque = 1; //背景
textword.b_opacity = (float)(0)/(float)100.; //透明度
textword.b_round = (BYTE) 10 ; //四舍五入为背景矩形半径
textword.smooth = (BYTE)1; //平滑选项的文本
_stprintf( textword.text, _T("水印文字") );


imagesy.DrawStringEx(0,0,100,&textword);

imagesy.Save("C://z2_sy.jpg",CXIMAGE_FORMAT_JPG);
}

图片 C C++
[解决办法]
CxImage的Draw好像可以绘制DC的,如果imagesy能绘制DC的话,创建一个兼容DC,用CreateFont中的nOrientation参数是字体的角度了,你创建了字体后再用SelectObject把字体选入容DC中,然后再TextOut,DrawText之类的,然后再用CxImage的Draw绘制兼容DC
[解决办法]
用CxImage生成另一张图(文字),然后把字图旋转一定角度,做为水印。
[解决办法]
在http://www.codeproject.com搜“watermark”

[解决办法]

引用:
Quote: 引用:

用CxImage生成另一张图(文字),然后把字图旋转一定角度,做为水印。


不行啊,文字生成的图片合成到原图上时会有背景,怎么设置成透明背景?
用AlphaSet设置透明背景还不行,还是有背景。。

1.把文字图设成白色背景。
2.设置透明度。
[解决办法]
画图前设置透明度。
void AlphaSet(BYTE level);//透明度
[解决办法]
这段时间忙飞了,等结果时看一下帖子。周末写代码实现一下。
现在没有时间写。。。

读书人网 >C++

热点推荐