Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Создание Луны в Стиле Бграбмпа: С некоторыми дополнительными параметрами и сохранением в формате 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 ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 01:09:22/0.0032248497009277/0