Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > BMP => JPG


Автор: МНУ 18.11.2005, 02:41
мну хочет сконвертить bmp в jpg!
у мну не получается сделать без потерь!
мну хочет качественно как в photoshop!

мну просит помощь у бодрых дядя с виноград!
поможите плиз!

smile smile smile

Автор: Satana 18.11.2005, 08:09
У ТБУ без потерь не получится по определению, ибо формат JPG подразумевает потери таки.
А чтоб конвертнуть из БМП в ЖПГ нуна делать примерно так:
Код

procedure convertToJpeg(FileName: string);
var
  bitmap: TBitmap;
  Jpeg: TJpegImage;
begin
  bitmap := TBitmap.Create;
  Jpeg := TjpegImage.Create;
  bitmap.LoadFromFile(FileName + '.bmp');
  Jpeg.Assign(Bitmap);
  jpeg.SaveToFile(FileName + '.jpg');
  bitmap.Free;
  jpeg.Free;
  DeleteFile(FileName + '.bmp'); //Тут удаляется исходный БМП файл если тебе этого не нада то закоментируй эту строку!!!!!
end;

Автор: Alexeis 18.11.2005, 10:54
Если так изменить код
то будет без потерь

Код

procedure convertToJpeg(FileName: string);
var
  bitmap: TBitmap;
  Jpeg: TJpegImage;
begin
  bitmap := TBitmap.Create;
  Jpeg := TjpegImage.Create;
  bitmap.LoadFromFile(FileName + '.bmp');
  Jpeg.Assign(Bitmap);

  jpeg.CompressionQuality := 100; 
  jpeg.Compress;

  jpeg.SaveToFile(FileName + '.jpg');
  bitmap.Free;
  jpeg.Free;
  DeleteFile(FileName + '.bmp');  //Тут удаляется исходный БМП файл если тебе этого не нада то закоментируй эту строку!!!!!

end;


Автор: Guest 18.11.2005, 13:11
Цитата(alexeis1 @ 18.11.2005, 10:54)
jpeg.CompressionQuality := 100;

мну так и делал
мну видел что jpg получился плохой сильно отличен от оригинала

мну сделал jpg в photoshop с максимальным качеством
мну загрузил его в bmp и сравнил по точкам с оригиналом
мну получил совпадение 100%!

итого мну считает satana не прав и метод alexeis1 плох

Автор: Alexeis 18.11.2005, 13:50
Может проблема с битностью цвета, тогда так

Код

procedure convertToJpeg(FileName: string);
var
  bitmap: TBitmap;
  Jpeg: TJpegImage;
begin
  bitmap := TBitmap.Create;
  Jpeg := TjpegImage.Create;
  bitmap.LoadFromFile(FileName + '.bmp');
  Jpeg.Assign(Bitmap);

  jpeg.CompressionQuality := 100; 
  Jpeg.PixelFormat := jf24Bit;
  jpeg.Compress;

  jpeg.SaveToFile(FileName + '.jpg');
  bitmap.Free;
  jpeg.Free;
  DeleteFile(FileName + '.bmp');  //Тут удаляется исходный БМП файл если тебе этого не нада то закоментируй эту строку!!!!!

end;

Автор: Ch0bits 18.11.2005, 15:15
По моему Jpeg.PixelFormat ставится такой-же как и bitmap.PixelFormat, а он такой как у файла.
Вообще есть такой косяк с Борландовской JPEG, хоть какие параметры не ставь, все равно смазывает красный цвет, поэтому для качественного преобразования не годиться.

Автор: sergejzr 18.11.2005, 15:41
Модератор: Пожалуйста не пишите посты, состоящие из исключительно заглавных букв. Также следует общаться на русском языке! Уважайте собеседников!

Это первое и последнее предупреждение.

Автор: Гость_zogman 22.11.2005, 13:34
Это может немножко не в тему,
но я встречался с такой проблемой - что Борланд (Builder 6) открывает жпг не совсем так как фотошоп,
скорее всего у Борлнда какая-то мелкая ошибочка в реализации жпг - может это проявляется еще где.

Автор: s-mike 24.11.2005, 13:45
JPG даже в качестве 100% дает потери в качестве. Для безпотерьного сжатия нужно использовать PNG.

Автор: Ch0bits 24.11.2005, 21:30
s-mike
Круто! Этот PNG даже 7z не жмётся.
+1 smile

Автор: sergejzr 25.11.2005, 01:28
К сожалению png теряет качество при большом количестве цветов...

Автор: Alexeis 30.11.2005, 10:03
Цитата
JPG даже в качестве 100% дает потери в качестве

Действительно !!! сжатие рэндомизированной картинки в 100% качестве показывает значительные искажения. Причем различные
программы (при качестве 100%) дают различные (в смысле цветов) картинки.
Цитата
но я встречался с такой проблемой - что Борланд (Builder 6) открывает жпг не совсем так как фотошоп

Потеря точности передачи цвета delphi 7 (delphi 2005) по сравнению с ACDSee (на рэндомизированной картинке) всего 0.5% что для глаза совсем не заметно.

Цитата
Круто! Этот PNG даже 7z не жмётся.

жмется 10.4 кб(7z) против 10.9 для png



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)