Является ли функция Api «GetPixel» быстрее, чем Canvas.Pixels?Разница между GetPixel и Canvas.Pixels в Delphi
ответ
Она должна быть такой же:
function TCanvas.GetPixel(X, Y: Integer): TColor;
begin
RequiredState([csHandleValid]);
GetPixel := Windows.GetPixel(FHandle, X, Y);
end;
Если вы ищете что-то, что работает лучше, чем GetPixel/Canvas.Pixel [] вы должны проверить Bitmap.ScanLine. Единственная проблема заключается в том, что данные могут быть организованы несколькими способами, определенными Bitmap.PixelFormat
Функция GetPixel очень медленно! Если вам нужна высокая (или даже приемлемая) производительность, вы должны использовать свойство ScanLine. ScanLine [y] - указатель на y-ю строку пикселей в растровом изображении, закодированную в формате, заданном свойством PixelFormat. Например, для 24-битного растрового изображения, линия имеет формат
B1 G1, G2, R1 В2 R2 ... Bn Оп Rn
, если ширина битового массива п. Bi, Gi и Ri - синие, зеленые и красные интенсивности пикселя i, соответственно, в виде байтов.
- 1. Разница между Delphi и Delphi.NET
- 2. Разница между Delphi 7 и Delphi 2010 Исполняемый размер?
- 3. из Дельф в C# Image1.Canvas.Pixels
- 4. В чем разница между конструктором и процедурой в записях Delphi?
- 5. В чем разница между AsInteger и Value в Delphi?
- 6. Разница между одним и многими «типовыми» блоками в Delphi
- 7. Разница между LongWord и кардиналом в Delphi XE?
- 8. В чем разница между Delphi и Rad Studio?
- 9. Быстрая альтернатива для getPixel и getPixel в Android Bitmap?
- 10. Разница между строкой [80] и строкой в Delphi 7 и Delphi XE4
- 11. В чем разница между WideChar и AnsiChar?
- 12. Разница между форматом файла delphi pe и файлом win32 pe
- 13. разница между `% в%` и `` ==
- 14. В чем разница между CreateWnd и CreateWindowHandle?
- 15. В чем разница между этими подписями Windows API в Delphi?
- 16. В чем разница между System.Windows.Controls.Control и System.Windows.Forms.Control?
- 17. разница между int * i и int * i
- 18. Вопрос о WM_INPUT и GetPixel
- 19. В чем разница между функциями сортировки строк Delphi?
- 20. Растровые изображения ALPHA_8 и getPixel
- 21. Разница между композитором.phar между | и ||
- 22. Различия между Java и Delphi .NET
- 23. В чем разница между View и ViewController?
- 24. Разница между этими объявлениями
- 25. В чем разница между «и»?
- 26. Разница между '' и "" в Python
- 27. В чем разница между `{}` и `[]`?
- 28. В чем разница между == и ===?
- 29. Разница между '~' и '/' в linux
- 30. разница между() и [] в R
Могу ли я спросить, что не так с моим аргументом? –
@ Рицаерт: Вы уверены? Я просто создал небольшой BMP-файл, заполненный (R, G, B) = (0xFF, 0, 0) и посмотрел на него в памяти. См. Http://privat.rejbrand.se/hex.png. Выделенный байт является первым байтом первой строки сканирования. Для меня это наверняка выглядит как байты идут BBGGRRBBGGRR ... –
Мне стыдно. Ты прав. Формат для 24-битных растровых изображений находится в порядке BGR. –