Конференция "Прочее" » Как с помощью делфи уменьшить вес фотки [D7, WinXP]
 
  • sava (04.01.10 21:50) [0]
    Как с помощью делфи уменьшить вес фотки?Фотки в среднем весят 10-15 мб и DVD их плохо грузит. Где копать надо???
  • TIF © (05.01.10 15:01) [1]
    Программно пересохранить в более подходящем формате?
    А ещё можно оптимизировать и этот формат?

    Всё это позволяет сделать и сторонний специализированный софт

    Цель какая: именно программно через Delphi это научиться делать или тупо решить для себя одноразовую бытовую задачу?
  • KilkennyCat © (05.01.10 15:02) [2]
    Обязательно с помощью делфи? xnview бесплатен, качествен и прекрасно работает с пакетной обработкой
  • Marser © (05.01.10 15:03) [3]
    Microsoft Office Picture Viewer :-)
  • MBo © (05.01.10 15:17) [4]

    program x4;

    uses SysUtils, Classes, Graphics, Jpeg;

    var
     j: TJpegImage;
     b: TBitmap;
     i: Integer;
     FileName: string;
     List: TStringList;
     SR: TSearchRec;

     procedure Convert(const FileName:string);
     begin
       j.LoadFromFile(FileName);
       b.Assign(j);
       j.Assign(b);
       j.SaveToFile('x4_'+FileName);
     end;

    begin
     j := TJpegImage.Create;
     j.Scale := jsQuarter;
     b := TBitmap.Create;
     if ParamCount = 0 then begin
       List := TStringList.Create;
       if FindFirst('*.jpg', faAnyFile, SR) = 0 then begin
         repeat
           List.Add(SR.Name);
         until FindNext(SR) <> 0;
         FindClose(SR);
       end;
       for i := 0 to List.Count - 1 do
         Convert(List[i]);
       List.Free;
     end
     else
       for i := 1 to ParamCount do begin
         FileName := ParamStr(i);
         if FileExists(FileName) and
           (LowerCase(ExtractFileExt(FileName)) = '.jpg') then
             Convert(FileName);
       end;
     j.Free;
     b.Free;
    end.


  • Кто б сомневался © (05.01.10 17:44) [5]
    IrfanView - умеет делать качественную обработку - это просмоторщик. Бесплатная прога.

    Причем здесь Delphi (С++,C# и др. языки) и "Фотки в среднем весят 10-15 мб и DVD их плохо грузит"
  • Jeer © (05.01.10 18:05) [6]

    > Кто б сомневался ©   (05.01.10 17:44) [5]
    > Причем здесь Delphi (С++,C# и др. языки)


    Ну как - сапожник, наконец дошел до своих сапогов.
    Устал он от собственного участия в развитии ACDSee, понимашь..
  • vuk © (05.01.10 19:17) [7]
    to MBo ©   (05.01.10 15:17) [4]:
    Кстати, о птичках.

    >j := TJpegImage.Create;

    TJpegImage корежит цвета так, что аж на глаз заметно.
  • MBo © (05.01.10 19:52) [8]
    >vuk ©   (05.01.10 19:17) [7]
    Я предполагаю, что  Scale := jsQuarter подразумевает простое преобразование без пересчета цветов. Но в тонкостях не разбирался.
  • vuk © (05.01.10 20:01) [9]
    to MBo ©   (05.01.10 19:52) [8]:
    Я не по поводу данного примера, а вообще. Scale ни при чем. Я, когда понадобилось найти более-менее нормальную библиотеку для обработки изображений, всяких реализаций много перебрал. Во многих случаях были те же проблемы (видимо какие-то косяки в алгоритмах кочуют из библиотеки в библиотеку). В конечном итоге остановился на GFL SDK: http://www.xnview.com/en/gfl.html
  • Джо © (05.01.10 20:02) [10]

    > vuk ©

    Может, внедренный цветовой профиль не учитывают?
  • Jeer © (05.01.10 20:08) [11]

    > vuk ©   (05.01.10 20:01) [9]
    Во многих случаях были те же проблемы..


    Даже с ijl*.dll ?
  • vuk © (05.01.10 20:09) [12]
    to Джо ©   (05.01.10 20:02) [10]:
    >Может, внедренный цветовой профиль не учитывают?
    Профиль тоже ни при чем. Имеем два изображения без профилей, после загрузки в TJpegImage и сохранения в другой файл имеем разные цвета (у меня особенно на ярко-красных цветах заметно было).
    То же самое, но при помощи GFL - все нормально с цветами.
  • vuk © (05.01.10 20:18) [13]
    to Jeer ©   (05.01.10 20:08) [11]:
    >Даже с ijl*.dll ?
    Ет хто? :)
    Если честно, не попадалось. Я в первую очередь рассматривал реализации на Delphi. Навскидку сейчас помню (давно было) только Envision Image Library, но что-то еще смотрел. Потом плюнул и взял GFL. Оттуда еще и масштабирование с шарпингом заюзались до кучи.
  • Jeer © (05.01.10 20:24) [14]
    Ну.. как бы, это хорошо известная Intel JPeg Library. Не знаю как сейчас дела обстоят ( наверняка лучше ), но для своего времени была фишкой по скорости.

    Free до ijl15.dll, пока не сделали платной. Как-то так.

    Использовали ее многие Delphi-библиотеки, например, FastLib.
  • vuk © (05.01.10 20:34) [15]
    to Jeer ©   (05.01.10 20:24) [14]:
    Ну, значит не дошла до неё в то время очередь. Остановился на первом, что нашел и что подошло под решаемую задачу.
  • Jeer © (05.01.10 20:43) [16]
    Глянул setup v.1.51 - 2001 г.
    Есть релизы отдельной ijl15.dll на 2003 г.

    Потом все это перетекло в платную ISPL ( Intel Signal Processing Library )
  • Sava (07.01.10 10:21) [17]
    Спасибо за советы обязательно попробую. А цель очень проста 1) развить свои знания и способности 2)фоток  640 шт и если каждую открывать в ручную то мышка может сдохнуть а на пальце будет большой мазоль...
  • Empleado © (07.01.10 14:42) [18]

    > 2)фоток  640 шт и если каждую открывать

    Microsoft Office Picture Manager --> Compress Pictures прекрасно справляется с этой задачей
 
Конференция "Прочее" » Как с помощью делфи уменьшить вес фотки [D7, WinXP]
Есть новые Нет новых   [134431   +9][b:0][p:0.001]