//CxImage叠加字符
void CCxImageTestDlg::OnBnClickedButton1()
{
CxImage imgJPG; // 定义一个CxImage对象
imgJPG.Load(
"1.jpg", CXIMAGE_FORMAT_JPG);
//先装载jpg文件
// 判断加载的jpg文件是否存在。
if (imgJPG.IsValid())
{
//得到文件对应的HBITMAP
HBITMAP hbmp =
imgJPG.MakeBitmap();
HWND hwnd =
GetSafeHwnd();
HDC hdc =
::GetDC(hwnd);
HDC hdcMem =
::CreateCompatibleDC(hdc);
SelectObject(hdcMem, hbmp);
RECT rc = {
50,
50,
200,
200};
::SetBkMode(hdcMem, TRANSPARENT);
::DrawText(hdcMem, "Hello World.", -
1, &
rc, DT_VCENTER);
CxImage imgBmp;
imgBmp.CreateFromHBITMAP(hbmp);
imgBmp.Save("1jpg.jpg", CXIMAGE_FORMAT_JPG);
::ReleaseDC(hwnd, hdc);
::DeleteDC(hdcMem);
::DeleteDC(hdc);
}
}
//左右合并两张图片,合并后的图片与原图等高;上下合并可类推。
//如果只是在图1上嵌入图2,处理后的图还是和图1的高宽一样。则只需要用MixFrom函数
void mergerImage(
void)
{
CxImage img1,img2,img3;
int h1,w1,h2,w2,h3,w3,bpp;
img1.Load("F:\\1.jpg");
img2.Load("F:\\2.jpg");
h1=
img1.GetHeight();
w1=
img1.GetWidth();
h2=
img2.GetHeight();
w2=
img2.GetWidth();
h3=
h1;
w3=w1+
w2;
bpp=
img1.GetBpp();
img3.Create(w3,h3,bpp);
img3.MixFrom(img1,0,
0);
img3.MixFrom(img2,w1,0);
img3.Save("f:\\3.jpg",CXIMAGE_FORMAT_JPG);
}
1 //图片裁剪
2 CxImage image;
3 bool bRet = image.Load(
"1.jpg");
4 CxImage smallImg;
5 bRet = image.Crop(
0,
0,
100,
100, &
smallImg);
6
7 uint8_t* buffer =
0;
8 int32_t size =
0;
9 smallImg.Encode(buffer, size, CXIMAGE_FORMAT_JPG);
10 std::
string sData = std::
string((
char*
)buffer, size);
11 smallImg.FreeMemory(buffer);
12
13 bRet = smallImg.Save(
"2.jpg",CXIMAGE_SUPPORT_JPG);
图像旋转image.Rotate(angle);image.RotateLeft();image.RotateRight();
转载于:https://www.cnblogs.com/jingdian1956/p/4101063.html
相关资源:CxImage 实现各种图片格式的转化