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

Как создать неактивное изображение из обычного (рельеф)

Delphi , Графика и Игры , Изображения

Как создать неактивное изображение из обычного (рельеф)



procedure TForm1.aaa(bmpFrom, bmpTo: Tbitmap);
var
  TmpImage, Monobmp: TBitmap;
  IRect: TRect;
begin
  MonoBmp := TBitmap.Create;
  TmpImage:=Tbitmap.Create;
  TmpImage.Width := bmpFrom.Width;
  TmpImage.Height := bmpFrom.Height;
  IRect := Rect(0, 0, bmpFrom.Width, bmpFrom.Height);
  TmpImage.Canvas.Brush.Color := clBtnFace;
  try
    with MonoBmp do
    begin
      Assign(bmpFrom);
      Canvas.Brush.Color := clBlack;
      if Monochrome then
      begin
        Canvas.Font.Color := clWhite;
        Monochrome := False;
        Canvas.Brush.Color := clWhite;
      end;
      Monochrome := True;
    end;
    with TmpImage.Canvas do
    begin
      Brush.Color := clBtnFace;
      FillRect(IRect);
      Brush.Color := clBlack;
      Font.Color := clWhite;
      CopyMode := MergePaint;
      Draw(IRect.Left + 1, IRect.Top + 1, MonoBmp);
      CopyMode := SrcAnd;
      Draw(IRect.Left, IRect.Top, MonoBmp);
      Brush.Color := clBtnShadow;
      Font.Color := clBlack;
      CopyMode := SrcPaint;
      Draw(IRect.Left, IRect.Top, MonoBmp);
      CopyMode := SrcCopy;
      bmpTo.assign(TmpImage);
      TmpImage.free;
    end;
  finally
    MonoBmp.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  aaa(image1.picture.bitmap, image2.picture.bitmap);
  Image2.invalidate;
end;

Программный код на Delphi для создания монохромной (черно-белой) версии изображения, преобразовывая его в представление серого цвета. Процедура aaa принимает два объекта TBitmap как параметры: исходное изображение (bmpFrom) и результатом монохромного изображения (bmpTo).

Процесс работы кода следующий:

  1. Создается временный объект TBitmap под названием TmpImage.
  2. Затем исходное изображение присваивается другому временному объекту TBitmap под названием MonoBmp. Это делается для предотвращения изменений в оригинальном изображении.
  3. Кanvas объекта MonoBmp устанавливает цвет кисти в черный, и он заливает всю картинку черными пикселями.
  4. Если режим монохромности включен, то устанавливается цвет шрифта в белый.
  5. Затем конвертируется MonoBmp в представление серого цвета, установив свойство монокрому в true.
  6. Кanvas временного объекта TmpImage заливается фоном (белым), а прямоугольник рисуется черными пикселями с использованием оригинального изображения как кисти.
  7. Результат монохромного изображения сохраняется в битмапе bmpTo.

Процедура Button1Click вызывает процедуру aaa, чтобы преобразовать изображение в контроле image1 в серое и сохранить его в контроле image2.

Некоторые предложения по улучшению кода:

  • Можно добавить обработку ошибок для случая, когда входные битмапы не являются валидными.
  • Вместо создания временных объектов можно использовать локальные переменные с более короткими именами. Это сделает ваш код более читаемым.
  • Комментарии на начало кода не нужны и могут быть удалены.
  • Можно также рассмотреть использование отдельной функции или процедуры для обработки задач по работе с изображениями, а не смешивать их с кодом, связанным с интерфейсом.

С помощью процедуры TForm1.aaa можно преобразовать обычное изображение в неактивное (рельеф) с помощью изменения цвета фона и текста, а также использования различных режимов копирования.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Изображения ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-04-26 16:41:21/0.0033597946166992/0