Консультация № 172876
04.10.2009, 09:53
0.00 руб.
0 5 1
Здраствуйте Уважаемые эксперты. Как можно на Delphi решить следующую задачу. Есть Image с картинкой. Она растянута на весь элемент. Сделал еще 3 image и хочу чтобы верхняя ее часть была в первом, средняя - во втором, и нижняя в третем и чтобы эти три картинки можно было сохранить. Пожалуйста помогите.

Обсуждение

Неизвестный
04.10.2009, 12:09
общий
это ответ
Здравствуйте, Dimon4ik.
Попробуйте как в приложении. Image1 - исходная картинка.

Приложение:
Image2.Width := Image1.Width;
Image3.Width := Image1.Width;
Image4.Width := Image1.Width;
Image2.Height:= Image1.Height div 3;
Image3.Height:= Image1.Height div 3;
Image4.Height:= Image1.Height div 3;
BitBlt(Image2.Canvas.Handle,0,0,Image1.Width,Image1.Height div 3,Image1.Picture.Bitmap.Canvas.Handle,0,0,SRCCOPY);
BitBlt(Image3.Canvas.Handle,0,0,Image1.Width,Image1.Height div 3,Image1.Picture.Bitmap.Canvas.Handle,0,Image1.Height div 3,SRCCOPY);
BitBlt(Image4.Canvas.Handle,0,0,Image1.Width,Image1.Height div 3,Image1.Picture.Bitmap.Canvas.Handle,0,(Image1.Height div 3)*2,SRCCOPY);
Неизвестный
12.10.2009, 22:55
общий
Selax:
Пустые белые прямоугольники вместо трех изображений...
Неизвестный
13.10.2009, 04:50
общий
Вот приложение, которое это реализует.
Test
Неизвестный
15.10.2009, 23:01
общий
Selax:
Спасибо, разобрался, а как сохранить при нажатии на кнопку, чтобы директорию выбрать только один раз и туда сохранились все эти картинки?
Неизвестный
16.10.2009, 10:36
общий
Dimon4ik:
Примерно так:
Подключите модуль:
uses FileCtrl;
и по нажатию на кнопку:
procedure TForm2.Button3Click(Sender: TObject);
const
SELDIRHELP = 1000;
var
Dir: string;
begin
if SelectDirectory(Dir, [sdAllowCreate, sdPerformCreate, sdPrompt],SELDIRHELP) then
begin
Image2.Picture.Bitmap.SaveToFile(Dir+'\Image2.bmp');
Image3.Picture.Bitmap.SaveToFile(Dir+'\Image3.bmp');
Image4.Picture.Bitmap.SaveToFile(Dir+'\Image4.bmp');
end;
end;
Форма ответа