duan201444 2018-05-25 17:37
浏览 49

添加Alpha通道性能

I'm looking to convert my array to a PNG image. It is currently an RGB8 encoded image. I can do so using the following code:

s2 := make([]uint8, 2048*2448*3)
err = dset.Read(&s2)
if err != nil {
    panic(err)
}

var (
    width  = 2048
    height = 2448
    rgb    = 3
)

to1D := func(x, y int) int {
    return (x * height * rgb) + (rgb * y)
}

img := image.NewRGBA(image.Rect(0, 0, width, height))
for ix := 0; ix < width; ix++ {
    for iy := 0; iy < height; iy++ {
        cords := to1D(ix, iy)
        img.SetRGBA(ix, iy, color.RGBA{R: s2[cords], G: s2[cords+1], B: s2[cords+2], A: 255})
    }
}

Is there a better way to add an alpha channel that doesn't involve looping through each pixel and setting it individually?

Thank you!

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥15 Oracle触发器记录修改前后的字段值
    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
    • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
    • ¥15 CSAPPattacklab
    • ¥15 一直显示正在等待HID—ISP
    • ¥15 Python turtle 画图
    • ¥15 stm32开发clion时遇到的编译问题