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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Инверсия изображения, Инвертирование изобрю на TImage 
:(
    Опции темы
Xdron
  Дата 15.3.2010, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ребят, ни ктоне знает, как на TImage изображение инвертировать???
PM MAIL   Вверх
Xdron
Дата 15.3.2010, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо,уже не нужно....у самого получилось...))

function InvertBitmap(Bmp: TBitmap): TBitmap; 
var 
  x, y: integer; 
  ByteArray: PByteArray; 
begin 
  Bmp.PixelFormat := pf24Bit; 
  for y := 0 to Bmp.Height - 1 do 
  begin 
    ByteArray := Bmp.ScanLine[y]; 
    for x := 0 to Bmp.Width * 3 - 1 do 
    begin 
      ByteArray[x] := 255 - ByteArray[x]; 
    end; 
  end; 
  Result := Bmp; 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
  Image1.Picture.Bitmap := InvertBitmap(Image1.Picture.Bitmap); 
end; 
........... вот если кому надо
PM MAIL   Вверх
Snowy
Дата 17.3.2010, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Не, никому не надо.
Слишком долго и бессмысленно.
Код
var
  b1, b2: TBitmap;
begin
  b1 := TBitmap.Create;
  b1.Assign(Image1.Picture.Graphic);
  b2 := TBitmap.Create;
  b2.Width := b1.Width;
  b2.Height := b1.Height;
  BitBlt(b2.Canvas.Handle, 0, 0, b2.Width, b2.Height,
         b1.Canvas.Handle, 0, 0, SRCINVERT);
  Image1.Picture.Assign(b2);
end;
так в десятки-сотни раз быстрее.
PM MAIL   Вверх
AntonN
Дата 17.3.2010, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Snowy, а если потом будет использоваться 32-х битный битмап?


--------------------
user posted image
PM MAIL WWW   Вверх
Dimonka2
Дата 18.3.2010, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Так будет чуть живее:

Код

function InvertBitmap(Bmp: TBitmap): TBitmap; 
var 
  x, y: integer; 
  P: PInteger; 
  PI: integer absolute P;
  I: integer;
begin 
  Bmp.PixelFormat := pf24Bit; 
  I := $FFFFFF;
  for y := 0 to Bmp.Height - 1 do 
  begin 
    P := Bmp.ScanLine[y]; 
    for x := 0 to Bmp.Width - 1 do 
    begin 
      P^ := P^ xor I; 
      inc(PI, 3);
    end; 
  end; 
  Result := Bmp; 
end; 


Это сообщение отредактировал(а) Dimonka2 - 18.3.2010, 14:39
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

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

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

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

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


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

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


 




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


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

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