Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.09.15;
Скачать: CL | DM;

Вниз

исчезает 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.007 c
2-1356611380
tomkat
2012-12-27 16:29
2013.09.15
CharSet TStringList


15-1365280202
Юрий
2013-04-07 00:30
2013.09.15
С днем рождения ! 7 апреля 2013 воскресенье


15-1365197648
Чайник
2013-04-06 01:34
2013.09.15
Нич-чо не понимаю!


2-1357388251
Евгений07
2013-01-05 16:17
2013.09.15
исчезает Image при простых действиях


2-1356651162
NS
2012-12-28 03:32
2013.09.15
Альфа канал иконки