Ничего себе! Ради интереса проверил на файле 100 Мб - меньше чем за 2 секунды. Даже получше, чем Ваш первый код для цветной картинки! Спасибо Вам большое!
И последний вопрос. Может, Вы и с этим поможете.
Как лучше теперь эту двухцветную картинку обработать в том плане, чтобы пиксели обрабатывались по блокам, к примеру, 10х10 и, если в этом блоке кол-во черных пикселей будет больше белых, то весь этот квадрат 10х10 перерисовывался полность в черный?
Тут, по идее, двумя циклами делать нужно: внутренний будет попиксельно проходить этот квадрат 10х10, высчитывать соотношение черных и белых пикселей, а затем перерисовывать его; а внешний цикл каким-то образом должен отвечать за позицию внутреннего цикла.
Только тут, получается, что пройдя таким образом самую первую строчку, последний блок может получиться не 10х10, а, например, 6х10. С ним тогда нужно поступить аналогичным образом, после чего перейти к следующей строчке.