Я использую следующий код для изменения размера растрового изображения с использованием GDI + в C. Я получаю серые значения для верхнего края даже для изображений, где эта область должна быть белой. Проблема исчезает, когда интерполяция является ближайшим соседом. Тем не менее, я пробовал бикубическую интерполяцию с ImageMagick, и это кажется прекрасным. Любые проблемы с ограничениями, о которых я должен знать? Является ли мой метод масштабирования неправильным? Благодаря!Fuzzy Top Edge с GDIPlus Resize
(входы: destSize: назначение Gdiplus :: Размер 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