Я использую Stretched=True на TImage с 256x256 битовый массив. Это уменьшено 1,2,4 или 8. Как ожидалось текст на битовом массиве становится более ужасным, больше я отступаю '1'. Я замечаю, хотя тот проводник Windows 7 представляет уменьшенную версию битового массива, 'более мягкого' и более приятного. Действительно ли возможно 'размыть' TBitmap таким образом?
Я полагаю, вы имеете в виду Stretched = True для TImage, а не для TBitmap.
К сожалению, TImage не имеет встроенных ресамплеров, когда дело доходит до изменения размера изображений в нем. Я бы рекомендовал использовать Graphics32 , поскольку он поддерживает множество ресамплеров (некоторые из них лучше для увеличение размера другие для уменьшения размера)
Используя режим HALFTONE StretchBltMode, вы получите более плавные результаты, чем при обычном растягивании. Это будет работать только в Windows 2000 и более поздних версиях
procedure SmoothResize();
var pt:TPoint;
h: HDC;
begin
h := imgMainPicture.Canvas.Handle;
// Previous call to StretchDraw
// imgMainPicture.Canvas.StretchDraw(Rect(0, 0, imgMainPicture.Width - 1,
// imgMainPicture.Height - 1), curPicture.AnnotatedBitmap);
// Normal StretchDraw uses STRETCH_DELETESCANS as StretchBltMode , HALFTONE should give better results
GetBrushOrgEx(h, pt);
SetStretchBltMode(h, HALFTONE);
SetBrushOrgEx(h, pt.x, pt.y, @pt);
StretchBlt(h, 0, 0, imgMainPicture.Width - 1,
imgMainPicture.Height - 1, curPicture.AnnotatedBitmap.Canvas.Handle,
0, 0, curPicture.Width,curPicture.Height,SRCCOPY);
end;