/读ååå§å¾çä¿¡æ¯
CImage * srcImage = new CImage();srcImage->Load(strPicName);
BYTE* srcPtr=(BYTE*)srcImage->GetBits();
int srcBitsCount=srcImage->GetBPP();
int srcWidth=srcImage->GetWidth();
int srcHeight=srcImage->GetHeight();
int srcPitch=srcImage->GetPitch();
/å é¤åå§å¾ç
DeleteFile(strPicName);
/å建æ°å¾å
CImage * destImage = new CImage();
destImage->Create(1200,800,srcBitsCount,0);
/å è½½è°è²æ¿
if(srcBitsCount<=8 && srcImage->IsIndexed())/éè¦è°è²æ¿
{
RGBQUAD pal[256];
int nColors=srcImage->GetMaxColorTableEntries();
if(nColors>0)
{
srcImage->GetColorTable(0,nColors,pal);
destImage->SetColorTable(0,nColors,pal);/å¤å¶è°è²æ¿ç¨åº
}
}
/ç®æ å¾ååæ°
BYTE *destPtr=(BYTE*)destImage->GetBits();
int destPitch=destImage->GetPitch();
/å¤å¶å¾åæ°æ®
for(int i=0 ; i<1200;i++)
{
for(int j=0;j<800;j++)
{
ifï¼srcBitsCount == 24ï¼
{
*(destPtr+ (799-j)*destPitch + 3*i) = *(srcPtr + i*srcPitch +3*j);/ç®çå¾çç第ä¸å
*(destPtr+ (799-j)*destPitch + 3*i+1) = *(srcPtr + i*srcPitch +3*j+1);
*(destPtr+ (799-j)*destPitch + 3*i+2) = *(srcPtr + i*srcPitch +3*j+2);
}
else ifï¼srcBitsCount == 8ï¼
{
*(destPtr+ (799-j)*destPitch + i) = *(srcPtr + i*srcPitch +j);/ç®çå¾çç第ä¸å
}
}
}
/ä¿åæ°å¾å
destImage->Save(strPicName);
delete srcImage;
delete destImage;