MCPcopy Create free account
hub / github.com/FloatTech/ZeroBot-Plugin-Playground / createPic

Method createPic

plugin/draw/draw.go:225–322  ·  view source on GitHub ↗

创建图片

(one *gg.Context, lt *location)

Source from the content-addressed store, hash-verified

223
224// 创建图片
225func (mp *mpic) createPic(one *gg.Context, lt *location) (image.Image, error) {
226 var wg sync.WaitGroup
227 if mp.isDouble {
228 var imgs [2]image.Image
229 var err1, err2 error
230 wg.Add(2)
231 titlec := titleColor{isRandom: false}
232 titlec.randfill()
233 go func() {
234 imgs[0], err1 = mp.createPic2(lt, &titlec, mp.info)
235 wg.Done()
236 }()
237 go func() {
238 imgs[1], err2 = mp.createPic2(lt, &titlec, mp.info2)
239 wg.Done()
240 }()
241 wg.Wait()
242 if err1 != nil {
243 return nil, err1
244 }
245 if err2 != nil {
246 return nil, err2
247 }
248 imRY := imgs[0].Bounds().Dy() + 100 // 右边 图像的高度
249 imLY := imgs[1].Bounds().Dy() + 5 // 左边 图像的高度
250 m := 0
251 if mp.isDisplay {
252 imLY += mp.h + 5
253 }
254 if imRY > imLY {
255 m = imRY
256 } else {
257 m = imLY
258 }
259 if m > one.H() {
260 imgtmp := gg.NewContext(one.W(), m+int(mp.fontSize)) // 高度
261 imgtmp.SetRGB255(255, 255, 255)
262 imgtmp.Clear()
263 imgtmp.DrawImage(one.Image(), 0, 0)
264 one = gg.NewContextForImage(imgtmp.Image())
265 }
266 if mp.isDisplay {
267 if imLY > one.H() {
268 imgtmp := gg.NewContext(one.W(), imLY) // 高度
269 imgtmp.SetRGB255(255, 255, 255)
270 imgtmp.Clear()
271 imgtmp.DrawImage(one.Image(), 0, 0)
272 one = gg.NewContextForImage(imgtmp.Image())
273 }
274 one.DrawImage(mp.im, 0, 0) // 放入看板娘
275 one.DrawImage(imgs[1], 0, mp.h+5)
276 one.DrawImage(imgs[0], 1280, 0) // 最终的绘制位置
277 } else {
278 one.DrawImage(imgs[0], 0, 0) // 最终的绘制位置
279 one.DrawImage(imgs[1], 1280, 0)
280 }
281 } else {
282 titlec := titleColor{isRandom: true}

Callers 1

dynaMethod · 0.95

Calls 2

randfillMethod · 0.95
createPic2Method · 0.95

Tested by

no test coverage detected