Копия викизеркало

Это зеркало вики с pascal.chat. Правка, история и вход — там.

PascalMagick/ru

Bahasa Indonesia · English · Español · Français · Português · Русский · 中文(中国) · 日本語

ImageMagick

ImageMagick -это бесплатный программный пакет разработанный для создания, редактирования и комбинирования растровых изображений. Он поддерживает огромное количество форматов (более 90) включая такие как GIF, JPEG, JPEG-2000, PNG, PDF, PhotoCD, TIFF, DPX и т.д. Изображения можно обрезать, красить, обрабатывать с использованием некоторых эффектов, вращать, растягивать, комбинировать, добавлять текст, линии, полигоны, эллипсы и кривые Безье.

Пакет запускается под управлением всех основных операционных систем, может работать в консольном режиме (через командную строку), и входит в состав большинства дистрибутивов Linux.

Особенности и возможности:

MagickWand

MagickWand API - это простой в использовании, программный интерфейс для работы с пакетом, рекомендованный командой разработчиков ImageMagic.

MagickCore

MagickCore API - это низкоуровневый интерфейс для ImageMagic.

PascalMagick

Этот порт - трансляция заголовков с языка C (си) на язык Pascal для возможности работы с MagickWand и Magick Core.

Авторы

Felipe Monteiro de Carvalho

Ángel Eduardo García

Лицензия

BSD-совместимая с GPL.

Полный текст здесь.

Загрузка

PascalMagick 0.4 доступен по адресу: http://sourceforge.net/project/showfiles.php?group_id=92177&package_id=174103&release_id=431432

Статус: заголовки Magick Wand полностью работоспособны как в Linux так и в Windows.

Установка

Текущая версия PascalMagic работает на Linux и Windows. Для тестирования под Mac OS X требуются бета тестеры.

Чтобы приступить к установке, скачайте и запустите бинарные файлы ImageMagic с официального сайта: http://www.imagemagick.org/script/binary-releases.php

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

Для проверки работоспособности откройте проект PascalMagick/wand/wanddemo.lpi. Теперь в главном меню Lazarus нажмите: Проект -> Опции компилятора..., и измените значения полей «Другие модули» и «Другие исходники» на «..\magick\;..\wand\», для того чтобы при сборке компилятор нашел файл PascalMagick/magick/ImageMagick.pas. После этого откомпилируйте и запустите тестовую программу.

Если все работает правильно, программа загрузит файл image.png (расположенный в том же каталоге), изменит его фактический размер и сохранит под именем image.jpg.

Один важный момент для пользователей Linux: переименуйте файл image.PNG в image.png для предотвращения возможных проблем.

Демонстрационная программа

pascal
{ 
  Демонстрационная программа для библиотеки ImageMagic
pascal
?????? ?????????????????? ???????? ????????????????????????????: Felipe Monteiro de Carvalho
pascal
??????????????????????????: ???????????? ?????????????????? ??????????????????, ?????? ?????????????? ???????????? ?????????? image.png
???????????????????????????? ?? ?????? ???? ???????????????? (106, 80) ?? ?????????????????????? ?????? ?? jpg.
pascal
Dez/2005
pascal
}
pascal
{Версия 0.1}
program wanddemo;
pascal
{$mode objfpc}{$H+}
pascal
uses SysUtils, magick_wand, ImageMagick;
pascal
procedure ThrowWandException(wand: PMagickWand);
var
  description: PChar;
  severity: ExceptionType;
begin
  description := MagickGetException(wand, @severity);
  WriteLn(Format('An error ocurred. Description: %s', [description]));
  description := MagickRelinquishMemory(description);
  Abort;
end;
pascal
var
  status: MagickBooleanType;
  wand: PMagickWand;
begin
  { Чтение изображения }
pascal
MagickWandGenesis;
pascal
wand := NewMagickWand;
pascal
try
  status := MagickReadImage(wand, 'image.png');
  if (status = MagickFalse) then ThrowWandException(wand);
pascal
{ Преобразование изображений в последовательность миниатюр }
pascal
MagickResetIterator(wand);
pascal
while (MagickNextImage(wand) <> MagickFalse) do
 MagickResizeImage(wand, 106, 80, LanczosFilter, 1.0);
pascal
{ Запись изображения как MIFF и его уничтожение }
pascal
status := MagickWriteImages(wand, 'image.jpg', MagickTrue);
if (status = MagickFalse) then ThrowWandException(wand);
pascal
finally
  wand := DestroyMagickWand(wand);
pascal
MagickWandTerminus;
pascal
end;
pascal
end.

Subversion

Вы можете загрузить SVN этого проекта используя команду:

svn checkout http://svn.freepascal.org/svn/fpc/trunk/packages/base/imagemagick imagemagick

Помощь и справка

За дополнительной информацией обращайтесь на форум Lazarus.


From the Free Pascal wiki, page "PascalMagick/ru", as it stood on 2015-05-11 after a change by FTurtle, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Версия 1, последнее изменение: WikiArchive, .