Программный код на Delphi для создания монохромной (черно-белой) версии изображения, преобразовывая его в представление серого цвета. Процедура aaa принимает два объекта TBitmap как параметры: исходное изображение (bmpFrom) и результатом монохромного изображения (bmpTo).
Процесс работы кода следующий:
Создается временный объект TBitmap под названием TmpImage.
Затем исходное изображение присваивается другому временному объекту TBitmap под названием MonoBmp. Это делается для предотвращения изменений в оригинальном изображении.
Кanvas объекта MonoBmp устанавливает цвет кисти в черный, и он заливает всю картинку черными пикселями.
Если режим монохромности включен, то устанавливается цвет шрифта в белый.
Затем конвертируется MonoBmp в представление серого цвета, установив свойство монокрому в true.
Кanvas временного объекта TmpImage заливается фоном (белым), а прямоугольник рисуется черными пикселями с использованием оригинального изображения как кисти.
Результат монохромного изображения сохраняется в битмапе bmpTo.
Процедура Button1Click вызывает процедуру aaa, чтобы преобразовать изображение в контроле image1 в серое и сохранить его в контроле image2.
Некоторые предложения по улучшению кода:
Можно добавить обработку ошибок для случая, когда входные битмапы не являются валидными.
Вместо создания временных объектов можно использовать локальные переменные с более короткими именами. Это сделает ваш код более читаемым.
Комментарии на начало кода не нужны и могут быть удалены.
Можно также рассмотреть использование отдельной функции или процедуры для обработки задач по работе с изображениями, а не смешивать их с кодом, связанным с интерфейсом.
С помощью процедуры TForm1.aaa можно преобразовать обычное изображение в неактивное (рельеф) с помощью изменения цвета фона и текста, а также использования различных режимов копирования.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.