起初我认为这是因为暗模式,这是一个 mac 问题,但不是。我的软件在图像中插入了一个徽标。插入完成后,图像可以保存为 png、jpeg 或 pdf。即使在为整个图像应用白色背景后,将其下载为 png 时,徽标周围也会有黑色背景。仅在 PDF 版本中,徽标以白色背景正确显示。这是转换:func moveLogoPosition(mainImage, logo image.Image, poseX, poseY, width, size int, excavate bool) { const regularMainImageSize = 300 m := resize.Resize(uint(75), 0, logo, resize.Bilinear) sr := m.Bounds() xOrigin := mainImage.Bounds().Size().X/2 - sr.Size().X/2 yOrigin := mainImage.Bounds().Size().Y/2 - sr.Size().Y/2 xFinal := xOrigin + sr.Bounds().Size().X yFinal := yOrigin + sr.Bounds().Size().Y r := image.Rectangle{ Min: image.Point{X: xOrigin + poseX, Y: yOrigin + poseY}, Max: image.Point{X: xFinal + poseX, Y: yFinal + poseY}, } draw.Draw(mainImage.(*image.NRGBA), r, m, sr.Min, draw.Src)}我想知道如果我遗漏了什么,我应该把背景画成白色吗?老实说,我不确定如何做到这一点。另一方面,主图像的透明度没有问题!我正在加入当前结果的示例(作为 png)
1 回答
梦里花落0921
TA贡献1772条经验 获得超6个赞
好的,所以如果您尝试让透明度自行运行,您会遇到太多问题,具体取决于操作系统、PNG 的质量等。
因此,我们强制将透明像素绘制为白色(在我们的例子中),以确保:不仅“非挖掘透明”部分正确显示为白色,而且还要确保徽标/图像在哪里用 illustrator 打开否则,正确支持现在白色的“透明度”。
这是我添加的内容:
white := color.RGBA{255, 255, 255, 255}
draw.Draw(mainImage, r, &image.Uniform{C: white}, image.Point{}, draw.Src)
draw.Draw(mainImage, r, m, sr.Min, draw.Over)
我不知道这是否会帮助任何人,但这是我在 Go 中找到的唯一选择。
- 1 回答
- 0 关注
- 148 浏览
添加回答
举报
0/150
提交
取消