Они означают, что первое, что проверяется, это размер и формат, и если они отличаются, функция сразу возвращает false
, так как очевидно, что изображения разные — поэтому функция вернет быстро, так как никакие пиксели не будут сравниваться, и это сравнение пикселей, которое занимает больше всего времени. Им ясно, что размер ИЛИ формат должны быть разными, чтобы функция возвращалась «быстро» (т.е. сразу знала, что изображения разные).
На самом деле невозможно, чтобы, за исключением формата, два изображения имели одинаковые значения ARGB, потому что именно формат определяет значения пикселей — многие форматы не имеют канала «A», некоторые форматы меняют порядок каналов ( например, RGBA); есть форматы, которые вообще не имеют ничего общего с ARGB (например, Format_Mono). Взгляните на enum QImage::Format
в документации, и вы поймете.
Изображения, имеющие разные форматы, имеют разный объем памяти и совершенно разные значения пикселей, которые вы даже никак не можете сравнить (поскольку нет стандартного способа сравнения, например, 24-битного пикселя и 16-битного пикселя, даже если они оба RGB); они также не могут выглядеть совершенно одинаково — вот почему люди придумали так много разных форматов для разных нужд. Формат определяет, что означает, что пиксель имеет определенное значение, поэтому он также определяет внешний вид.
Итак, подведем краткий итог: если размеры или формат двух изображений различаются, уже на этом этапе можно сказать, что эти изображения не имеют одинакового содержания, поэтому информации достаточно для == оператор для возврата false.
person
KjMag
schedule
13.07.2014