Перейти к содержанию
Fire Monkey от А до Я
  • 0

Что работает быстрее TBitmap.Map или TBitmapData.GetScanline?


estra

Вопрос

Опубликовано

Метод доступа к пикселям TBitmapData.GetScanline работает быстрее чем TBitmap.Map с последующим циклом? Можете привести пример работы с TBitmapData.GetScanline?

Рекомендуемые сообщения

  • 0
  • Администраторы
Опубликовано

Вопрос не корректен. Так как чтобы получить TBitmapData, нужно его запросить через TBitmap.Map. Одно является следствие работы другого.

 

TBitmap.Map выделяем буфер TBitmap. После получения буфера вся работа с TBitmapData выполняется мгновенно со сложностью O(n).

  • 0
Опубликовано

Согласен, некорректно.

 

Я хотел узнать, Доступ к пикселам по средствам GetPixel медленнее (как в VCL), быстрее или равен по скорости GetScanline? Что лучше использовать с точки зрения скорости? 

  • 0
  • Администраторы
Опубликовано (изменено)
  1. В отличии от VCL FireMonkey не имеет метода TBitmap.GetPixel. Работа с пикселями идет только после запроса TBitmapData
  2. После запроса TBitmapData TBitmapData.GetScanline и TBitmapData.GetPixel выполняются мгновенно, вне зависимости от размера изображения. 
  3. На счет скорости выполнения запроса TBitmapData нужно проверить на своих вариантах использования. В целом, это дорогостоящая операция. Но ее стоимость зависит от многих факторов, от типа используемой канвы, от варианта использования (частота, объемы и тд)
Изменено пользователем Brovin Yaroslav
Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...