MCPcopy Create free account
hub / github.com/lxn/walk / bitmapForDPI

Method bitmapForDPI

graphicseffects.go:43–110  ·  view source on GitHub ↗
(dpi int)

Source from the content-addressed store, hash-verified

41}
42
43func (wgeb *widgetGraphicsEffectBase) bitmapForDPI(dpi int) (*Bitmap, error) {
44 if wgeb.dpi2Bitmap == nil {
45 wgeb.dpi2Bitmap = make(map[int]*Bitmap)
46 } else if bitmap, ok := wgeb.dpi2Bitmap[dpi]; ok {
47 return bitmap, nil
48 }
49
50 var disposables Disposables
51 defer disposables.Treat()
52
53 bitmap, err := NewBitmapWithTransparentPixelsForDPI(SizeFrom96DPI(Size{12, 12}, dpi), dpi)
54 if err != nil {
55 return nil, err
56 }
57 disposables.Add(bitmap)
58
59 canvas, err := NewCanvasFromImage(bitmap)
60 if err != nil {
61 return nil, err
62 }
63 defer canvas.Dispose()
64
65 for i := 1; i <= 5; i++ {
66 size := SizeFrom96DPI(Size{i*2 + 2, i*2 + 2}, dpi)
67
68 bmp, err := NewBitmapWithTransparentPixelsForDPI(size, dpi)
69 if err != nil {
70 return nil, err
71 }
72 defer bmp.Dispose()
73
74 bmpCanvas, err := NewCanvasFromImage(bmp)
75 if err != nil {
76 return nil, err
77 }
78 defer bmpCanvas.Dispose()
79
80 color := RGB(
81 byte(math.Min(1.0, float64(wgeb.color.R())/255.0-0.1+0.1*float64(i))*255.0),
82 byte(math.Min(1.0, float64(wgeb.color.G())/255.0-0.1+0.1*float64(i))*255.0),
83 byte(math.Min(1.0, float64(wgeb.color.B())/255.0-0.1+0.1*float64(i))*255.0),
84 )
85
86 brush, err := NewSolidColorBrush(color)
87 if err != nil {
88 return nil, err
89 }
90 defer brush.Dispose()
91
92 ellipseSize := SizeFrom96DPI(Size{i * 2, i * 2}, dpi)
93 if err := bmpCanvas.FillRoundedRectanglePixels(brush, Rectangle{0, 0, size.Width, size.Height}, ellipseSize); err != nil {
94 return nil, err
95 }
96
97 bmpCanvas.Dispose()
98
99 opacity := byte(borderGlowAlpha[i-1] * 255.0)
100

Callers 2

DrawMethod · 0.80
DrawMethod · 0.80

Calls 15

TreatMethod · 0.95
AddMethod · 0.95
SpareMethod · 0.95
SizeFrom96DPIFunction · 0.85
NewCanvasFromImageFunction · 0.85
RGBFunction · 0.85
NewSolidColorBrushFunction · 0.85
PointFrom96DPIFunction · 0.85
MinMethod · 0.80
RMethod · 0.80
GMethod · 0.80

Tested by

no test coverage detected