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

  • Автор темы kyran29
  • Дата начала
K

kyran29

Необходимо уменьшить масштаб полученного снимка с минимальными потерями качества.
Результат: масштаб был уменьшен с помощью функции 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;
 
V

vital

Суть вопроса изменить масштаб с минимум потерь в качестве изображения.
Почитать про алгоритмы изменения размера изображения.
Например тут
или тут
на худой конец тут
 
V

vital



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

sinkopa

Суть вопроса изменить масштаб с минимум потерь в качестве изображения.
o_O Всё равно мне лично "суть вопроса" Вашего понятна не до конца...
Если суть - накодить алгоритм уменьшения картинки "с малыми потерями качества, то Вам сюда:

или (как уже подсказывали) сюда
А если же суть - получить результат, то сюда:
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!