Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Вырезать часть картинки / 3 сообщений из 3, страница 1 из 1
29.01.2019, 14:36
    #39766556
Tech N9ne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вырезать часть картинки
Нужно из simage1 вырезать часть изображения в simage2

Код: pascal
1.
2.
3.
4.
5.
6.
7.
 SIMAGE1.Picture.LoadFromFile('c:\image.jpg');
 BMP := TBitmap.Create;
 BMP.Width := sImage1.Picture.Width;
 BMP.Height := sImage1.Picture.Height;
 BMP.Canvas.Draw( 0,0,Simage1.Picture.Graphic );
 BitBlt(sImage2.Canvas.Handle, 0,0,100,100, BMP.Canvas.Handle, 100,100, SRCCOPY);
 BMP.Free;


ничего не происходит. Вернее в simage2 ничего нет.
пробовал сохранить bmp, что бы удостоверится, что в нем есть картинка — картинка есть.
думаю что-то не правильно сделал в BitBlt...
что я делаю не так?
...
Рейтинг: 0 / 0
29.01.2019, 14:44
    #39766560
Dimonka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вырезать часть картинки
Tech N9ne,

Самое главное, что ты делаешь не так - это пытаешься рисовать по канвасу Image2. Нужо TImage картинку присваивать. Примерно так (по памяти):
Код: pascal
1.
sImage2.Picture.Graphics.Assign(BMP);


В целом процесс примерно следующий:
1. копируешь Image1 в bitmap1
2. создаёшь bitmap2 нужого (обрезанного размера)
3. копируешь нужную часть bitmap1 в bitmap2
4. присваиваешь картинке sImage2 bitmap2
х. подчищаешь память :-)

p.s.
По идее можно даже Bitmap1 не создавать
...
Рейтинг: 0 / 0
29.01.2019, 15:46
    #39766617
Tech N9ne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вырезать часть картинки
Dimonka,
Спасибо, получилось.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Вырезать часть картинки / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]