Создание Луны в Стиле Бграбмпа: С некоторыми дополнительными параметрами и сохранением в формате PNG Delphi , Графика и Игры , Bitmap
В этом руководстве мы создадим лунный силуэт в стиле bgrabmp с некоторыми дополнительными параметрами и сохраним его в формате PNG в Delphi.
Шаг 1: Создание нового проекта
Начните с создания нового проекта Delphi VCL Forms Application.
Шаг 2: Добавление компонентов
Добавьте следующие компоненты на форму из палитры компонентов:
TImage (имя: imgMoon)
TButton (имя: btnSave)
TLabel (имя: lblRadius, lblAngle)
TSpinEdit (имя: spnRadius, spnAngle)
TColorButton (имя: cbMoonColor)
Шаг 3: Инициализация параметров
В коде формы объявите переменные для хранения дополнительных параметров:
var
MoonRadius: Integer;
MoonAngle: Integer;
MoonColor: TColor;
Установите значения по умолчанию для этих переменных в конструкторе формы:
constructor TForm1.Create(AOwner: TComponent);
begin
inherited;
MoonRadius := 100;
MoonAngle := 45;
MoonColor := clBlack;
end;
Шаг 4: Обработка событий
Добавьте обработчики событий для компонентов, которые будут использоваться для изменения параметров:
procedure TForm1.SpnRadiusChange(Sender: TObject);
begin
MoonRadius := spnRadius.Value;
DrawMoon;
end;
procedure TForm1.SpnAngleChange(Sender: TObject);
begin
MoonAngle := spnAngle.Value;
DrawMoon;
end;
procedure TForm1.CbMoonColorChange(Sender: TObject);
begin
MoonColor := cbMoonColor.Color;
DrawMoon;
end;
Шаг 5: Рисование Луны
Создайте процедуру DrawMoon для рисования лунного силуэта с заданными параметрами:
procedure TForm1.DrawMoon;
var
MoonPen: TPen;
MoonBrush: TBrush;
MoonRect: TRect;
MoonCenter: TPoint;
begin
MoonPen := TPen.Create;
MoonPen.Color := MoonColor;
MoonPen.Width := 2;
MoonBrush := TBrush.Create;
MoonBrush.Color := clWhite;
MoonBrush.Style := bsSolid;
MoonRect := imgMoon.ClientRect;
MoonCenter := Point(MoonRect.Left + MoonRect.Width div 2, MoonRect.Top + MoonRect.Height div 2);
with imgMoon.Canvas do
begin
// Очистка изображения
Brush.Color := clWhite;
FillRect(MoonRect);
// Рисование эллипса для Луны
Brush.Color := MoonColor;
FillEllipse(MoonBrush, MoonCenter.x - MoonRadius, MoonCenter.y - MoonRadius, MoonRadius * 2, MoonRadius * 2);
// Удаление эллипса для создания лунного силуэта
EraseEllipseAntialias(MoonPen, MoonCenter.x - MoonRadius, MoonCenter.y - MoonRadius, MoonRadius * 2, MoonRadius * 2, MoonAngle);
end;
MoonPen.Free;
MoonBrush.Free;
end;
Шаг 6: Сохранение Луны в формате PNG
Добавьте обработчик нажатия кнопки btnSave для сохранения лунного силуэта в формате PNG:
procedure TForm1.btnSaveClick(Sender: TObject);
var
MoonBitmap: TBitmap;
MoonStream: TMemoryStream;
begin
MoonBitmap := TBitmap.Create;
try
MoonBitmap.Assign(imgMoon);
MoonStream := TMemoryStream.Create;
try
MoonBitmap.SaveToStream(MoonStream, TBitmapFormat.bmpPNG);
MoonStream.SaveToFile('Moon.png');
finally
MoonStream.Free;
end;
finally
MoonBitmap.Free;
end;
end;
Шаг 7: Обновление Луны при изменении размеров формы
Добавьте обработчик события OnResize для формы, чтобы перерисовывать лунный силуэт при изменении размеров формы:
procedure TForm1.FormResize(Sender: TObject);
begin
DrawMoon;
end;
Теперь вы можете изменять радиус, угол и цвет Луны, а также сохранять лунный силуэт в формате PNG в вашем проекте Delphi.
Создано по материалам из источника по ссылке .
__Создание Луны в Стиле Бграбмпа: С некоторыми дополнительными параметрами и сохранением в формате PNG в Delphi.__
Комментарии и вопросы Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Bitmap ::