Спасибо за ответы , На самом деле я не озадачен рисованием 1024 * 768 пикселей медленнее, чем 100 * 100 пикселей ... Это такая простая логика ..
Что меня озадачило, так это то, что алгоритм интерполяции DrawImage может быть очень медленным, хотя существует множество более качественных алгоритмов, и его декодер, кажется, может декодировать из JPG с определенным разрешением, это действительно круто, я ищу некоторое время, но не нахожу бесплатная библиотека для этого ...
Это действительно странно!
Я добавляю следующий код в метод Paint. c: \ 1.jpg - 5M jpg файл, около 4000 *3000* 1004 *
// --------------------------------------------- -----------------
HDC hdc = pDC->GetSafeHdc();
bitmap = Bitmap::FromFile(L"c:\\1.jpg",true);
Graphics graphics(hdc);
graphics.SetInterpolationMode( InterpolationModeNearestNeighbor );
graphics.DrawImage(bitmap,0,0,200,200);
Выше очень быстро! даже в режиме реального времени! Я не думаю, что декодировать JPG 5 м может быть так быстро!
// --------------------------------------------- -----------------
HDC hdc = pDC->GetSafeHdc();
bitmap = Bitmap::FromFile(L"c:\\1.jpg",true);
Graphics graphics(hdc);
graphics.SetInterpolationMode( InterpolationModeNearestNeighbor );
graphics.DrawImage(bitmap,0,0,2000,2000);
Код выше стал очень медленным
// --------------------------------------------- -----------------
Если я добавлю Bitmap = Bitmap :: FromFile (L "c: \ 1.jpg", true); // в конструкцию
оставить
Graphics graphics(hdc);
graphics.SetInterpolationMode( InterpolationModeNearestNeighbor );
graphics.DrawImage(bitmap,0,0,2000,2000);
в методе OnPaint,
Код все еще немного медленный ~~~
// --------------------------------------------- ---------------------
По сравнению с декодированием процесс drawImage действительно медленный ...
Почему и Как они это сделали? Microsoft платила мужчинам, отвечающим за декодер, двойную зарплату, чем мужчинам, отвечающим за написание DrawingImage?