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

Обрезка изображений в FMX TBitmap: решения для портирования под Android

Delphi , Графика и Игры , Bitmap

Вопрос обрезки изображений в приложениях на Delphi, использующих FMX, является актуальным, особенно если проект планируется портировать на платформу Android. В данном случае, пользователь столкнулся с необходимостью обрезки изображения, полученного через событие TCameraComponent.SampleBufferReady. Для этого были вычислены параметры обрезки, но использовался метод, требующий VCL API handle и Windows GDI функций, что может вызвать проблемы при портировании на Android.

Решение проблемы обрезки изображений

Для решения этой задачи можно использовать метод CopyFromBitmap, который доступен в FMX и не зависит от Windows GDI. Вот пример кода, который демонстрирует, как можно обрезать изображение без использования VCL API handle и Windows GDI функций:

procedure CropBitmap(InBitmap, OutBitmap: TBitmap; X, Y, W, H: Word);
var
  iRect: TRect;
begin
  OutBitmap.PixelFormat := InBitmap.PixelFormat; // Убедитесь, что это не только чтение
  OutBitmap.Width := W;
  OutBitmap.Height := H;
  iRect.Left := X;
  iRect.Top := Y;
  iRect.Width := W;
  iRect.Height := H;
  OutBitmap.CopyFromBitmap(InBitmap, iRect, 0, 0);
end;

Важные замечания

  • Убедитесь, что объекты InBitmap и OutBitmap существуют перед вызовом CropBitmap, так как в примере не выполняется проверка на их наличие.
  • Свойство PixelFormat является только для чтения, поэтому его присваивание OutBitmap.PixelFormat := InBitmap.PixelFormat; может быть неэффективным и его следует использовать только для демонстрации, что это свойство должно быть скопировано (но фактически его состояние может быть не важно для копирования битов).
  • Метод CopyFromBitmap имеет несколько перегрузок, убедитесь, что вы используете правильную.

Заключение

Используя метод CopyFromBitmap из FMX, вы можете обрезать изображения без необходимости использования VCL API handle и Windows GDI функций, что делает ваш код более кросс-платформенным и удобным для будущего портирования под Android.

Этот подход обеспечивает совместимость с FireMonkey, что является ключевым фактором для разработчиков, планирующих расширение своей аудитории на мобильные платформы, включая Android.

Создано по материалам из источника по ссылке.

Обрезка изображений в приложениях на Delphi с использованием FMX для портирования на Android требует применения методов, не зависящих от VCL и Windows GDI, для обеспечения кросс-платформенности.


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

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




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


:: Главная :: Bitmap ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-02-05 12:55:38/0.0034899711608887/0