次のコードを使用して、CでGDI +を使用してビットマップのサイズを変更しています。その領域が白であるはずの画像でも、上端に灰色の値が表示されます。補間が最近傍になると、問題は解消されます。しかし、ImageMagickでバイキュービック補間を試しましたが、問題ないようです。知っておくべき制限の問題はありますか?私のスケーリング方法はどういうわけか間違っていますか?ありがとう!
(入力:destSize:宛先Gdiplus :: Size m_pBitmap:ソースビットマップ)
Rect destRect(Point(0,0), destSize);
Bitmap *pBitmap24BPP = new Bitmap(destSize.Width, destSize.Height, PixelFormat24bppRGB);
pBitmap24BPP->SetResolution(m_pBitmap->GetHorizontalResolution(), m_pBitmap->GetVerticalResolution());
Graphics *pGraphics = Graphics::FromImage(pBitmap24BPP);
pGraphics->SetInterpolationMode(InterpolationModeHighQualityBilinear);
pGraphics->DrawImage(m_pBitmap, destRect, 0, 0, m_pBitmap->GetWidth(), m_pBitmap->GetHeight() , UnitPixel, NULL);
//cleanup