Уменьшить масштаб полученного снимка экрана

kyran29

New Member
03.03.2015
3
0
#1
Необходимо уменьшить масштаб полученного снимка с минимальными потерями качества.
Результат: масштаб был уменьшен с помощью функции ResizeBitmap - качество изображения изменилось с худшим результатом:
screenshot-2.jpg
Качество изображения без функции ResizeBitmap :
screenshot-1.jpg
Прошу помочь разобраться с уменьшением масштаба изображения с минимальными потерями в качества.

Код:
uses Jpeg;
 
function ResizeBitmap(BmpIn : TBitmap; NewWidth, NewHeight : Integer) : TBitmap;
begin
  Result := TBitmap.Create;
 try
   Result.Width := NewWidth;
   Result.Height := NewHeight;
   Result.PixelFormat := BmpIn.PixelFormat;
   Result.Canvas.StretchDraw(Rect(0, 0, Result.Width, Result.Height), BmpIn);
 except
   Result.Free;
 end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
 var
   JpegIm: TJpegImage;
   bm: TBitMap;
   ScrJpg : String;
 begin
   ScrJpg := 'screenshot.jpg';
   DeleteFile(ScrJpg);
   bm := TBitMap.Create;
   bm.Width := Screen.Width;
   bm.Height := Screen.Height;
   BitBlt(bm.Canvas.Handle, 0, 0, bm.Width, bm.Height, GetDC(0), 0, 0, SRCCOPY);
   bm := ResizeBitmap(bm, 1200, 674);
   JpegIm := TJpegImage.Create;
   JpegIm.Assign(bm);
   JpegIm.CompressionQuality := 90;
   JpegIm.Compress;
   JpegIm.SaveToFile(ScrJpg);
   bm.Destroy;
   JpegIm.Destroy;
   Form1.Close;
end;
 

vital

Больной Компом Детектед
29.01.2006
2 432
42
#6
Суть вопроса изменить масштаб с минимум потерь в качестве изображения.
Почитать про алгоритмы изменения размера изображения.
Например тут
Чтобы видеть этот контент необходимо: Войти или зарегистрироваться

или тут
Чтобы видеть этот контент необходимо: Войти или зарегистрироваться

на худой конец тут
Чтобы видеть этот контент необходимо: Войти или зарегистрироваться
 

vital

Больной Компом Детектед
29.01.2006
2 432
42
#7
Чтобы видеть этот контент необходимо: Войти или зарегистрироваться


Вот еще хороший алгоритм. Поищите реализации на дельфях, только вряд ли. Такие вещи не выкладывают обычно. Оно вам точно надо?:)
 

sinkopa

Well-Known Member
17.06.2009
344
9
#8
Суть вопроса изменить масштаб с минимум потерь в качестве изображения.
o_O Всё равно мне лично "суть вопроса" Вашего понятна не до конца...
Если суть - накодить алгоритм уменьшения картинки "с малыми потерями качества, то Вам сюда:
Чтобы видеть этот контент необходимо: Войти или зарегистрироваться

или (как уже подсказывали) сюда
Чтобы видеть этот контент необходимо: Войти или зарегистрироваться

А если же суть - получить результат, то сюда:
Чтобы видеть этот контент необходимо: Войти или зарегистрироваться