você pode usar tecnologias web.. Já fiz algo parecido, e é relativamente simples utilizando canvas e javaScript.
Vc carrega a imagem no canvas usando um context2d e usa a função getImageData(cordenadas).data. Isso vai retorna um array com o valores rgba do ponto especificado, dai é só mapear os intervalos desses valores para as strings.