PNG - это сжатый формат, поэтому вы не можете загрузить его без какой-либо библиотеки. BMP значительно легче загружать в память, например: https://bitbucket.org/itraykov/utils/src/master/io/bmp.lua
Теперь, что касается вашего исходного вопроса, как преобразовать цвет в черно-белый, самый простой способ - использовать RGB средний:
local r, g, b = getColor()
local bw = (r + g + b)/3
setColor(bw, bw, bw)
Конечно, вам нужно изменить getColor / setColor в зависимости от библиотеки, которую вы используете. Дополнительные проверки необходимы для изображений с прозрачностью или альфа-каналом.