我想從眼動儀結果(顯示屏幕上用戶最常看的位置)創建熱圖。透明像素顏色 - 去朗圖像
對於用戶頻繁查看的像素,我想設置不透明的紅色,不太常見的橙色等。 我使用紅色到綠色的色階。 但是對於頻率最低的像素,我希望它們不僅顯示綠色,我希望它們透明。
imgfile, err := os.Open("unchanged.jpeg")
defer imgfile.Close()
if err != nil {
fmt.Println(err.Error())
}
decodedImg, err := jpeg.Decode(imgfile)
img := image.NewRGBA(decodedImg.Bounds())
size := img.Bounds().Size()
for x := 0; x < size.X; x++ {
for y := 0; y < size.Y; y++ {
img.Set(x, y, decodedImg.At(x, y))
}
}
// I change some pixels here with img.Set(...)
outFile, _ := os.Create("changed.png")
defer outFile.Close()
png.Encode(outFile, img)
的問題是,當我試圖改變顏色,例如與img.Set(x, y, color.RGBA{85, 165, 34, 50})
它實際上沒有顏色的像素爲依賴於新舊顏色平均值,它只是顯示了一些新的,奇怪的顏色。
圖像的設置爲50的α值RGBA:(透明)
圖像的設置爲255的α值RGBA:(不透明)
我使用png形象,據我所知支持透明度。 這是爲什麼發生?任何想法可以解決這個問題,並使最少見的像素看起來透明?
感謝您的每一個答案。