Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2013.09.15;
Скачать: [xml.tar.bz2];

Вниз

исчезает Image при простых действиях   Найти похожие ветки 

 
Евгений07 ©   (2013-01-05 16:17) [0]

Доброго времени!
После сборки 2х отлаженных кусков возникла ошибка с изображением
Вырезал
1. Form1, просто читаю фото формат JPEG в Form2 =
procedure TForm1.FileListBox2Click(Sender: TObject);
begin
 Form2.Show;
 Form2.Image1.Picture.LoadFromFile(FileListBox2.FileName);
end;

2. Form2 =
type
 TForm2 = class(TForm)
   Image1: TImage;
   Button1: TButton;
   Button3: TButton;
 private
procedure Canny(const bm_in: TBitmap);
. . .
procedure TForm2.Canny(const bm_in: TBitmap);
var        h: longint;
begin
 h :=  0;
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
 Canny(Image1.Picture.Bitmap);
end;

procedure TForm2.Button3Click(Sender: TObject);
var        Width, Height: longint;
begin
Width := Image1.Picture.Bitmap.Width;
end;

3. = Form2.Button1Click и Image1 исчезает
      В отладке работает

4. = Form2.Button3Click и Image1 исчезает

В чем может быть проблема?


 
Медвежонок Пятачок ©   (2013-01-05 17:15) [1]

В том, что

ShowMessage(IntToStr(Image1.Picture.Bitmap.Width));


 
Евгений07 ©   (2013-01-05 17:42) [2]


> Медвежонок Пятачок

Чтение Image1.Picture.Bitmap.Width уничтожает картинку
И так ShowMessage(IntToStr(Image1.Picture.Bitmap.Width));
И так Width := Image1.Picture.Bitmap.Width;
Почему?
Пока нашел
Имея дело с классом TBitmap, учитывайте, что принцип "один объект — один дескриптор" из-за наличия механизма кэширования неверен. Два метода:
   function ReleaseHandle: HBITMAP;
   function ReleasePalette: HPALETTE;
возвращают дескрипторы битовой карты и палитры соответственно, а после этого обнуляют дескрипторы, т. е. как бы "отдают" их пользователю.
При любом внешнем обращении к дескриптору битовой карты и любой попытке рисовать на ее канве разделение одной картинки несколькими объектами прерывается, и объект получает собственную копию содержимого дескриптора.
Copied from: http://articles.org.ru/delphi7/Glava10/index11.php

Прощайте
Меня ведут в театр


 
Медвежонок Пятачок ©   (2013-01-05 17:47) [3]

Чтение Image1.Picture.Bitmap.Width уничтожает картинку

Image1.Picture.Graphic.Width


 
Евгений07 ©   (2013-01-05 23:14) [4]

Медвежонок Пятачок
У меня проблема не в определении размеров БитМапа
Надо:
1.1. Из кадра видеокамеры надо вырезть кусок фото, примерно 1000*1600
1.2. Получить контур методом Канни (это лучший)
1.3. По определенному шаблону надо вырезать фото объекта (видео реальное, объект может быть искажен, тени)
1.4. Синтез фото = объект + фон + финтифлюшки

2. Работа с фото = часть работы с сайтом

По отдельности все работает
Вместе - нет
Я чего-то не понимаю в работе с БитМап
Где чего читнуть?


 
Медвежонок Пятачок ©   (2013-01-06 00:22) [5]

Чтение Image1.Picture.Bitmap.Width уничтожает картинку

Ну так не читай если уничтожает.
читай Image1.Picture.Graphic.Width



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2013.09.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.002 c
15-1365005875
О-Сознание
2013-04-03 20:17
2013.09.15
Надёжность GetWindowLong(H, GWL_USERDATA)


15-1364391250
Sammi
2013-03-27 17:34
2013.09.15
Проблема с функцией Delphi -> C++


15-1365336685
Разведка
2013-04-07 16:11
2013.09.15
как создать сгенерировать UUID


2-1357291115
Pcrepair
2013-01-04 13:18
2013.09.15
Проблемы с передачей параметров в поток через TStringList


4-1267176656
istok
2010-02-26 12:30
2013.09.15
Запуск процесса под юзером...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский