Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Фильтры 
:(
    Опции темы
Sergey89
Дата 4.3.2005, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 14.9.2004

Репутация: нет
Всего: нет



Как реализуется быстрая обработка изображений? Например в Фотожопе фильтры просто моментально работают.
--------------------
mlib.com.ru
PM MAIL   Вверх
Illusion Dolphin
Дата 5.3.2005, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 13
Всего: 63



Например так я пытался сделать аналог фотошоповского "AutoLevels":
Код


Type
 TRGB=record
 b,g,r : byte;
 end;

type
T255ByteArray = array[0..255] of byte;
T255IntArray = array[0..255] of Cardinal;

 ARGB=array [0..1] of TRGB;
 PARGB=^ARGB;
 PRGB = ^TRGB;

.....

function Gistogramma(S : TBitmap) : T255IntArray;
var
 i,j : integer;
 ps : PARGB;
 L : byte;
begin
S.PixelFormat := pf24bit;
for i:=0 to 255 do
Result[i]:=0;
for i:=0 to s.height-1 do
begin
ps:=S.ScanLine[i];
for j:=0 to s.Width-1 do
 begin
  L:=Round(0.3*ps[j].r+0.59*ps[j].g+0.11*ps[j].b);
  inc(Result[L]);
 end;
end;
end;

Procedure AutoLevels(S,D : TBitmap);
var
 ps, pd : PARGB;
 i,j, MinCount : integer;
 L: byte;
 Count : int64;
 RL : T255ByteArray;
 Gistogramm : T255IntArray;
begin
D.Width := S.Width;
D.Height := S.Height;
S.PixelFormat := pf24bit;
D.PixelFormat := pf24bit;
Gistogramm:=Gistogramma(S);
MinCount:=(S.height div 50)*(S.Width div 50);
Count:=0;
for i:=255 downto 0 do
begin
 inc(Count,Gistogramm[i]);
 if Count>MinCount then
 begin
  L:=i;
  break;
 end;
end;
if l=0 then l:=1;
for i:=0 to 255 do
begin
 RL[i]:=Min(255,Round((255/l)*i));
end;
for i:=0 to s.height-1 do
begin
ps:=s.ScanLine[i];
pd:=d.ScanLine[i];
for j:=0 to s.Width-1 do
 begin
  pd[j].r:=Rl[ps[j].r];
  pd[j].g:=Rl[ps[j].g];
  pd[j].b:=Rl[ps[j].b];
 end;
end;
end;



--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0379 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.