Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2011, 10:55   #1
Vivaldi7
Новичок
Джуниор
 
Регистрация: 10.10.2011
Сообщений: 2
Восклицание Вырезать картинку(без потери качества) с исходным разрешением

Здравствуйте уважаемые программисты.
При сканировании листа у меня создается изображение с разрешением 2480х1783.На нем находится нужный мне кусок картинки размером 451х595 мне его нужно вырезать и сохранить в отдельный файл.Но при просмотре через библиотеку ImageFileLibBCB изображение выглядит нечетким(с квадратиками),а если открыть к примеру фотоальбомом windows то картинка четкая.Изображение формата tif.Пробовал открывать через неё jpg.Результат тот же.Чем можно просматривать нормально?Но еще главная проблема - я могу вырезать часть экрана и сохранить его в jpg но он вырезает с экрана(218х156) а нужно чтоб он вырезал как с оригинального размера,но чтоб картинка осталась четкой и на весь экран(не в стандартном разрешении 2480х1783).Как это реализовать
1)Качественный просмотр
2)Сохранение части изображения в оригинальном размере,но отображение в минимизированном.
У меня Делфи7.Прошу помочь.
Чтобы было проще понятно насчет вырезания.Мне нужно вырезать не часть выделенной области экрана(так мы можем),а часть изображения.
Vivaldi7 вне форума Ответить с цитированием
Старый 13.10.2011, 17:12   #2
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,822
По умолчанию

чтоб вырезать часть изображения - это придётся считывать все пиксели в данной области - это N строк по M точек - и заносить их в массив. т.е. придётся картинку разбивать на пиксели и делать выборку в этих N строках.а это муторно....но если это того стоит, то загружаете картинку в PaintBox и считываете пиксели каким-нибудь дубовым способом:
Код:
if(paintbox1.Canvas.Pixels[i,j]=clBlack)and(x1=0)then x1:=i;//записываем первую
или
Код:
massiv[i,j]:=paintbox1.Canvas.Pixels[i,j];
хоть вам это и не надо, но проще всего вывести картинку на экран и сделать скриншот с экрана в нужной области - это буквально 6-7 строк кода.
а насчёт качественного просмотра в уменьшенном варианте, как на экране цифровика, тут совет не смогу дать....
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 14.10.2011, 18:35   #3
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию

грубо говоря, единственный формат изображения, который не теряет качества - bmp.
ну или любой другой, который конкретно описывает каждый пиксел изображения.

если нужно вырезать кусок изображения - то для этого есть bmp.Canvas.ScanLine
нужно создать пустой битмап, пиксел за пикселом перенести туда нужную часть изображения.
xrob вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ресайз PNG без потери прозрачности RidDozZ Мультимедиа в Delphi 2 01.08.2012 13:40
Объединение ячеек без потери значений Mopsusha Microsoft Office Excel 3 08.08.2011 06:51
Вырезать картинку с канвы. sergeyrulit Общие вопросы Delphi 3 21.11.2010 19:22
Убрать точки без потери данных king13 Microsoft Office Excel 4 07.10.2009 13:54
Копирование таблицы без потери форматирования k1r1ch Microsoft Office Excel 3 09.07.2009 11:00