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

Тема в разделе "Delphi - Multimedia, Графика, Игры", создана пользователем kyran29, 3 мар 2015.

  1. kyran29

    kyran29 New Member

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

    Код (Delphi):
    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;
     
  2. vital

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.469
    Симпатии:
    27
    А с этим параметром баловаться пробовали?
     
  3. kyran29

    kyran29 New Member

    Регистрация:
    3 мар 2015
    Сообщения:
    3
    Симпатии:
    0
    Пробовал, масштаба изображения - JpegIm.CompressionQuality не меняет
     
  4. vital

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.469
    Симпатии:
    27
    Зато влияет на результирующее качество картинки, при преобразовании из bitmap в jpg, как вариант.
     
  5. kyran29

    kyran29 New Member

    Регистрация:
    3 мар 2015
    Сообщения:
    3
    Симпатии:
    0
    Суть вопроса изменить масштаб с минимум потерь в качестве изображения.
     
  6. vital

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.469
    Симпатии:
    27
    Почитать про алгоритмы изменения размера изображения.
    Например тут http://habrahabr.ru/post/111402/
    или тут http://habrahabr.ru/post/48518/
    на худой конец тут https://ru.wikipedia.org/wiki/Масштабирование_изображения
     
  7. vital

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.469
    Симпатии:
    27
  8. sinkopa

    sinkopa Well-Known Member

    Регистрация:
    17 июн 2009
    Сообщения:
    344
    Симпатии:
    9
    o_O Всё равно мне лично "суть вопроса" Вашего понятна не до конца...
    Если суть - накодить алгоритм уменьшения картинки "с малыми потерями качества, то Вам сюда:
    http://geektimes.ru/post/13534/
    или (как уже подсказывали) сюда http://habrahabr.ru/post/183638/
    А если же суть - получить результат, то сюда:
    http://freeimage.sourceforge.net/index.html
     
Загрузка...
Похожие Темы - Уменьшить масштаб полученного
  1. ToxaRat
    Ответов:
    0
    Просмотров:
    1.522
  2. Gandliar
    Ответов:
    2
    Просмотров:
    2.344
  3. vitte
    Ответов:
    8
    Просмотров:
    728
  4. tank2009
    Ответов:
    1
    Просмотров:
    1.548
  5. Серафим
    Ответов:
    0
    Просмотров:
    1.119

Поделиться этой страницей