//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();