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


Автор: ilya198293 1.10.2007, 12:12
Подскажите, пожалуйста, каким компонентом можно воспользоваться для работы с изображениями. Нужно чтоб он умел вращать изображение, зумировать, имел линейки прокрутки и при печати чтоб было много возможностей (печать по размерам, печать с вписанием в страницу) - может несколько компонентов. Чтоб поддерживал tiff формат, хотя я нашёл какие-то исходнички по работе с tiff, может получиться запустить с другими компонентами. И чтоб работал под BDS2006. Image Controls 2.0 не захотел работать под BDS2006.

Автор: fse 1.10.2007, 15:08
ilya198293, вряд ли ты найдёшь такой компонент, чтобы он совмещал всё то, что тебе нужно + совмещал это так как тебе нужно! И уж точно, кроме поворотов и зума имел поддержку неклассических форматов.
Я бы тебе предложил всё это нарыть в отдельных статьях и организовать у себя в программе так, как это нужно.
По поводу вращения и зумирования - смотри тут, tiff тоже поищи.

Автор: Alexeis 1.10.2007, 23:31
Можно себе что-нибудь подобрать отсюда http://torry.net/pages.php?id=500

Автор: ilya198293 2.10.2007, 06:34
Я нашёл где-то исходники, которые позволяют подключить TIFF. Где это лежит не помню, но скачать скачал.
Полазил по примерам, что-то подшаманил, ну в итоге в Image1 tiff подгрузил.
С Image Controls 2.0 поковырялся, запустился он под BDS2006. В Image Controls 2.0 есть такая функция как "маштабирова изображение под размер рамки". Когда загружаю обычную bmp - он сносно масштабирует. Но когда загружаю tiff, то масштабировать не хочет.
Пробовал использовать компоненты JEDI или JVCL - не понял как правильно они называются - в них тоже tiff грузился.
В программке, которая прилагалась к исходникам для работы с tiff файлами было написано
Код

  OpenPictureDialog1.Filter:='All images ('+BitmapLoaders.GetLoadFilter;
  if OpenPictureDialog1.Execute
    then begin
      with TLinearBitmap.Create do begin
        try
          Image1.Picture:=nil;
          LoadFromFile(OpenPictureDialog1.FileName);
          AssignTo(Image1.Picture.Bitmap);
        finally
          Free;
        end;
      end;
    end;

я так понял что после выполнения этого текста, картинка загружается в компонент Image1 - и она действительно загрузилась. Пробовал из него считать картинку и перегрузить её в SBScrollingImage из Image Controls 2.0, всё равно не получилось отмасштабировать изображение под размер рамки.

Добавлено через 9 минут и 43 секунды
Как вариант zoom-ирования - это сопоставить размер картинки и размер компонента отображения SBScrollingImage и результат отношения перевести в проценты и записать в SBScrollingImage1.zoom.

Автор: ilya198293 3.10.2007, 08:52
Короче получилось загрузить TIFF.
но возникла другая проблема - одна картинка формата А4 сканированная на 600dpi занимает 4,5МБ на диске и 80МБ в оперативке при открытии таким методом.
может кто подскажет как можно на ходу конвертнуть её в 96dpi и потом отобразить?

Автор: Motorocker 3.10.2007, 12:23
Советую попробовать TImageEn. Всеядный компонент. Платный, порядка 2000 р., но того стоит.

Автор: ilya198293 4.10.2007, 06:13
поискал я такой компонент, только там написано что он для 5,6,7 delphi и триала так нигде и не нашёл.

Автор: Motorocker 4.10.2007, 11:09
http://www.hicomponents.com/ndownloads_imageen.asp

Автор: ilya198293 6.10.2007, 10:43
А подскажи как проще всего купить этот компонент?
Я бы его купил, как юридическое лицо, вот только с нашей бюрократией думаю будет это сделать сложновато. Тем более счета на оплату будут скорее всего не по русски и по идее потом нужно будет собрать счета-фактуры и подписать акт передачи всего этого, а может и какой-нибудь сертификатик, о том что эта копия лицензионна. А ещё может какой-нибудь договорчик будет на поддержку этого компонентика.

Автор: ilya198293 26.10.2007, 11:34
А может кто подкинет примерчик по использованиею ImageEn?
В частности загрузку tiff файла.

Автор: Motorocker 1.11.2007, 09:32
Цитата(ilya198293 @ 26.10.2007,  11:34)
А может кто подкинет примерчик по использованиею ImageEn?
В частности загрузку tiff файла.

На сайте уйма примеров.
В справке тоже.

img: TImageEnIO;
подключаем финкции компрессии
  img.Params.TIFF_LZWDECOMPFUNC:= TIFFLZWDecompress;
  img.Params.TIFF_LZWCOMPFUNC:= TIFFLZWCompress;
загружаем файл
img.LoadFromFile(FileName);

Цитата(ilya198293 @ 6.10.2007,  10:43)
А подскажи как проще всего купить этот компонент?

Без понятия. Предложил автору зарегиться на наших платёжных сайтах, ответа не было. Предложение перевести описание и FAQ тоже проигнорировано.

Мне как частнику предложил оплатить через Western Union, т.к. визы/мастеркарда у меня нет. Есстественно, тут никаких бухдоков не будет.

Автор: ilya198293 10.9.2008, 08:08
Пишу в тексте программы и меняю в ручную в свойствах компонента:
Код

OpenImageEnDialog1.Filter:='All Support Files (*.tif;*.tiff;*.jpg;*.jpeg)|*.tif;*.tiff;*.jpg;*.jpeg|TIFF Bitmap (*.tif;*.tiff)|*.tif;*.tiff|JPEG Bitmap (*.jpg;*.jpeg)|*.jpg;*.jpeg';

Но при запуске фильтр не меняется и остаётся как был по умолчанию.
Что сделать для того чтоб использовались толmrj нужные мне типы файлов?

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