首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

TImage的图片怎样传到GDI+的Image里解决方法

2012-02-08 
TImage的图片怎样传到GDI+的Image里 - C++ Builder / Windows SDK/API1.GDI+的Image有两种构造方法:一种是

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);
...

热点排行