|
方法是用IBasicBitmapOps 进行旋转,代码大概是:
IImagingFactory* pImgFactory = NULL;
IImage* pImage = NULL;
IBitmapImage* pbmpImg = NULL; //bmp图像
IBitmapImage* pNewbmpImg=NULL; //旋转后的bmp图像
IBasicBitmapOps *pbmpOp = NULL; //旋转操作
IImage* pNewImage=NULL; //新的iimage图像
(1)CoCreateInstance (CLSID_ImagingFactory,NULL,CLSCTX_INPROC_SERVER,IID_IImagingFactory,(void**)&pImgFactory))
(2)pImgFactory->CreateImageFromFile(picfPath, &pImage)) && SUCCEEDED(pImage->GetImageInfo(&imageInfo))
(3)pImgFactory->CreateBitmapFromImage(pImage,scrnW,scrnH,imageInfo.PixelFormat,InterpolationHintDefault,&pbmpImg)
(4)pbmpImg->QueryInterface(IID_IBasicBitmapOps,(void **) &pbmpOp);
pbmpOp->Rotate(m_RAngle,InterpolationHintDefault,&pNewbmpImg);
pNewbmpImg->QueryInterface(IID_IImage,(void **)&pNewImage));
(5)pNewImage->Draw(pDC->GetSafeHdc(), &rc, NULL);
对于JPG, PNG, TIF 都能实现, 可是 BMP,GIF文件到了第(3)步却创建不成功~~~请问如何用IImage实现GIF文件的旋转啊?
|
|