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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2006, 13:57   #1
felistrs
Новичок
Джуниор
 
Регистрация: 19.11.2006
Сообщений: 1
Вопрос пожалуйста помогите мне по графике

Я делаю програму для редагирования изображений. У меня возникла проблема: как мне ускорить обработку еффекта (для болыших изображений)? Как мне достать адресс к масиву изображения и его палитре?

пример:
procedure TForm1.Button2Click(Sender: TObject);
var
x,y:word;
begin
for y:=0 to Image1.Picture.Bitmap.Height do
for x:=0 to Image1.Picture.Bitmap.Width do
Image1.Picture.Bitmap.Canvas.Pixels[x,y]:=
Image1.Picture.Bitmap.Canvas.Pixels[x,y] xor $00ffffff;
end;

Пожалуйста помогите!
felistrs вне форума Ответить с цитированием
Старый 19.11.2006, 16:32   #2
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
По умолчанию

1) используй построчное сканирование: scanline
Код:
var
  x,y : Integer;
  BitMap : TBitMap;
  P : PByteArray; // только для <=256 цветов

begin
for y := 0 to BitMap.Height -1 do
    begin
      P := BitMap.ScanLine[y];

      for x := 0 to BitMap.Width -1 do
        P[x] := {значение};
    end;
...
2) указывай Canvas один раз, вне цикла:

with Image1.Picture.Bitmap.Canvas do
for y:=0 to H do
for x:=0 to W do ...

на самом деле при каждом обращении к Canvas происходит некоторая переинициализация, на первый взгляд невидимая
Берегите друг друга!

Последний раз редактировалось zetrix; 19.11.2006 в 21:04.
Virtson вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста сделать разметку на графике Taisja Помощь студентам 1 19.06.2008 17:45
помощь в графике KingArthur Gamedev - cоздание игр: Unity, OpenGL, DirectX 5 19.04.2008 23:58
Задачки по графике LaDy MaRMeLaD Паскаль, Turbo Pascal, PascalABC.NET 4 12.01.2008 16:14
Координаты на графике Dimon88 Помощь студентам 2 15.11.2007 17:34