Go tem uma ótima biblioteca de imagens fornecida com a distribuição padrão.
Eu precisava verificar se há imagens corrompidas em go, você pode fazer isso assim:
// importing gif, jpeg, and png for side effects
// if these imports are not there the Decode will not be able
// to detect these filetypes
import (
"image"
_ "image/gif"
_ "image/jpeg"
_ "image/png"
)
_, _, err = image.Decode(file)
if err != nil {
println(f.Name() + " seems corrupt")
}
Exemplo completo para verificar se há imagens danificadas no diretório atual: https://gist.github.com/hoffoo/7285657