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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2009, 21:26   #1
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,033
Радость PNG+Image+GetRValue=Ошибка

Здравствуйте!
Загружаю в TImage картинку из файла- все ок , потом пытаюсь узнать красную составляющую цвета с помощью функции GetRValue, но тут вылетает ошибка !
Что делать?
P.S. Delphi 2009;
Levsha100 вне форума Ответить с цитированием
Старый 24.04.2009, 21:30   #2
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Видимо ты что-то делаешь неправильно, попробуй другой подход
это вместо "код в студию" )
пыщь
JTG вне форума Ответить с цитированием
Старый 24.04.2009, 21:42   #3
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,033
Радость

Код в студии)) Теперь надо отгадать слово
Код:
var 
  A:Array[1..65,1..17] of boolean;
-----------------------------------
procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenPictureDialog1.Execute()then
    SourceImage.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;
-----------------------------------
procedure imgToArray();
var
i,j:integer;
begin
  for i := 2 to 65-1 do
   for j := 2 to 17-1 do
     if GetRed(Form1.SourceImage.Canvas.Pixels[i,j])<210 then
       A[i,j]:=true
     else
       A[i,j]:=false;
end;
Вот собственно и все.
P.S. Неудевляйтесь тому что цикл с "2" до "числа -1"-так надо))
Короче перегоняю картинку в массив...
Помогите!

Последний раз редактировалось Levsha100; 24.04.2009 в 22:50.
Levsha100 вне форума Ответить с цитированием
Старый 24.04.2009, 23:16   #4
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

А, ну да, не работает Pixels с не-битмапами
(и даже честно об этом сообщает "Exception class EInvalidOperation with message 'Can only modify an image if it contains a bitmap'")

Код:
procedure imgToArray();
var
i,j:integer;
b:tbitmap;
begin

  b:=TBitmap.Create;
  b.Assign(form1.sourceImage.Picture.Graphic);
  b.PixelFormat := pf24bit;

  for i := 2 to 65-1 do
   for j := 2 to 17-1 do
     if GetRValue(b.Canvas.Pixels[i,j])<210 then
       A[i,j]:=true
     else
       A[i,j]:=false;

  b.Free;
end;
пыщь
JTG вне форума Ответить с цитированием
Старый 24.04.2009, 23:20   #5
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,033
По умолчанию

Спасибо! Огромное!!!
+1
Levsha100 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка открытия файла в Image Лукманов Александр Общие вопросы Delphi 2 18.03.2009 14:16
*.png Killbrum Помощь студентам 3 30.08.2008 15:51
Прочитать png формат в image Sin3v Общие вопросы Delphi 1 18.07.2008 11:45
Png Witaliy Мультимедиа в Delphi 3 25.05.2008 23:10
PNG в Image Grey Fox Помощь студентам 1 02.08.2007 12:24