powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Вырезать часть картинки
3 сообщений из 3, страница 1 из 1
Вырезать часть картинки
    #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
Вырезать часть картинки
    #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
Вырезать часть картинки
    #39766617
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimonka,
Спасибо, получилось.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Вырезать часть картинки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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