Отправляет email-рассылки с помощью сервиса Sendsay

Delphi для профессионалов

  Все выпуски  

Delphi для профессионалов Первый Выпуск


Всем привет!
Сегодняшняя первая рассылка выйдет в обычном текстовом формате.
Немного вводной информации.
Рассылка формируется на основе форума Iguana Delphi Forum (http://forum.igp.org.ua/).
Вопросы затрагиваемые в рассылке будут интересные и разнообразные, но простых не будет. Это может быть работа с БД, работа с сетевыми ресурсами, создание и модернизация компонент, работа с ActiveX, разбор алгоритмов, публикация статей.

Убедительно прошу перед тем как задавать вопрос подумайте дважды.
Возможны Вы в состоянии решить вопрос без посторонней помощи.


Вы не далеко не всегда получите ответ в виде "готового кода", но по крайней мере Вашим мыслям будет задан некоторый вектор движения к цели.

Все выпуски можно обсудить на форуме (http://forum.igp.org.ua/?num=1175289010), а также предложить тему следующего выпуска (http://forum.igp.org.ua/?num=1175288840).

На этом общая информация заканчивается. В виду того, что это первая рассылка, то тему по рассылке я выбрал на свое усмотрение. Начнем с чего-то простого, но интересного... Например... простая работа с графикой...

Установка сжатия JPEG-файла

Для начала нам необходимо подключить модуль JPEG чтобы наша программа понимала этот графический формат.

 uses JPEG;

Опишем процедуру которая будет для нас устанавливать сжатие. Как входные параметры нам необходимо знать степень сжатия (ACompression), путь к исходному файлу (AInFile), который необходимо "пережать" и, для удобства, путь к файлу(AOutFile) в который сохранить результат.

procedure SetJPEGCompression(
ACompression : integer;
const AInFile : string;
const AOutFile : string
);

Какие переменные нам нужны внутри процедуры? Вполне логично предположить, что достаточно будет двух типов TJpegImage и TBitmap. А если мы хотим сделать небольшую "защиту против дурака", то потребуется еще и переменная целочисленная, чтобы проверить вхождение переменной степени сжатия в диапазон 1..100.

var
  iCompression : integer;
  oJPG : TJPegImage;
  oBMP : TBitMap;

Опишем тело процедуры:

begin
  // проверяем вхождение переменной степени сжатия в диапазон 1..100
  if (ACompression < 1) then iCompression := 1
  else if (ACompression > 100) then iCompression := 100
  else iCompression := ACompression;

  // создаем рабочие переменные типа JPEG и BMP
   oJPG := TJPegImage.Create;
   oBMP := TBitMap.Create;

  try
    // пробуем открыть файл
    oJPG.LoadFromFile(AInFile);
    oBMP.Assign(oJPG);
    // устанавливем уровень сжатия и "сжимаем" изображение
    oJPG.CompressionQuality := iCompression;
    oJPG.Compress;
    // сохраняем результат в указанный файл
    oJPG.SaveToFile(AOutFile);
  finally
    // освобождаем память переменных
    oJPG.Free;
    oBMP.Free;
  end;
end;

Постоянная ссылка на статью: http://igp.org.ua/articles/a174/

На этом на сегодня позвольте распрощаться. Ждите следующего выпуска. С уважением, автор рассылки Игорь.

 

 

Обсудить выпуск можно на форуме (http://forum.igp.org.ua/?num=1175289010).
Предложить тему для следующей рассылке также можно на форуме (http://forum.igp.org.ua/?num=1175288840).

 


В избранное