TImage的图片怎样传到GDI+的Image里 - C++ Builder / Windows SDK/API
1.GDI+的Image有两种构造方法:一种是Image(IStream*,BOOL),另一种是Image(WCHAR*,BOOL)。
但是我想把TImage里已有的图片里传给Image,不知道怎样做才能实现?可以的话能给个简单的例子吗?
2.今天在网上看到一个函数,想用一下,但是对GDI不太熟,拿来了居然不会用。请教一下诸位。
现已有一个TImage(已加载图片),想调用一下下面的函数,该怎么写?
- C/C++ code
// GetRotatedBitmap - Create a new bitmap with rotated image// Returns - Returns new bitmap with rotated image// hDIB - Device-independent bitmap to rotate// radians - Angle of rotation in radians// clrBack - Color of pixels in the resulting bitmap that do// not get covered by source pixelsHANDLE GetRotatedBitmap( HANDLE hDIB, float radians, COLORREF clrBack );//--------函数return 的变量是这样声明定义和被引用的:----------------------------------HANDLE hDIBResult = GlobalAlloc(GMEM_FIXED,len+nHeaderSize);// Initialize the header informationmemcpy( (void*)hDIBResult, (void*)hDIB, nHeaderSize);BITMAPINFO &bmInfoResult = *(LPBITMAPINFO)hDIBResult ;bmInfoResult.bmiHeader.biWidth = w;bmInfoResult.bmiHeader.biHeight = h;bmInfoResult.bmiHeader.biSizeImage = len;LPVOID lpDIBBitsResult = (LPVOID)((LPBYTE)hDIBResult + nHeaderSize);……return hDIBResult;
主要是让大家回答第一个问题。
[解决办法]
O_O'' 居然没有高手回答一下?
[解决办法]
数据类型不同
[解决办法]
char *p="E:\\test.jpg";
Image1->Picture->SaveToFile(p);
Image *image = NULL;
image = Bitmap::FromFile(WideString(p),true);
[解决办法]
TImage *img;
//生成或装载 GDI 位图
...
//转换为 GDI+ 位图
Bitmap *bmp = new Bitmap(img->Picture->Bitmap->Handle,img->Picture->Bitmap->Palette);
...