我正在尝试绘制多个透明图像以形成一个大图像并将其另存为PNG
func generateUserImage(username string, items []models.Item) error {
imageFile, err := os.Create("public/items/users/" + username + ".png")
if err != nil {
return err
}
profileImage := image.NewRGBA(image.Rect(0, 0, 261, 336))
for _, item := range items {
revel.INFO.Println(item)
itemFile, err := os.Open("public/items/universe/" + item.Type + "/" + item.Name + ".png")
if err != nil {
return err
}
itemImage, err := png.Decode(itemFile)
if err != nil {
return err
}
draw.Draw(profileImage, profileImage.Bounds(), itemImage, image.Point{0, 0}, draw.Src)
itemFile.Close()
}
err = png.Encode(imageFile, profileImage)
if err != nil {
return err
}
defer imageFile.Close()
return nil
}
Run Code Online (Sandbox Code Playgroud)
一切似乎都工作正常,除了最终图像仅包含范围循环的最后一个图像(即使范围循环 5 次)。所有图像均为 .png 并具有透明背景。这是有关图像外观的演示
你可以尝试保存图像并看到背景是透明的...所以我不知道为什么最终图像只包含 1 个图像而不是全部
谢谢
正如评论中提到的。
draw.Draw(profileImage, profileImage.Bounds(), itemImage, image.Point{0, 0}, draw.Over)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3438 次 |
| 最近记录: |