Форум: "Начинающим";
Текущий архив: 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