NewBitmapFromFileForDPI creates new bitmap from a bitmap file at given DPI.
(filePath string, dpi int)
| 126 | |
| 127 | // NewBitmapFromFileForDPI creates new bitmap from a bitmap file at given DPI. |
| 128 | func NewBitmapFromFileForDPI(filePath string, dpi int) (*Bitmap, error) { |
| 129 | var si win.GdiplusStartupInput |
| 130 | si.GdiplusVersion = 1 |
| 131 | if status := win.GdiplusStartup(&si, nil); status != win.Ok { |
| 132 | return nil, newError(fmt.Sprintf("GdiplusStartup failed with status '%s'", status)) |
| 133 | } |
| 134 | defer win.GdiplusShutdown() |
| 135 | |
| 136 | var gpBmp *win.GpBitmap |
| 137 | if status := win.GdipCreateBitmapFromFile(syscall.StringToUTF16Ptr(filePath), &gpBmp); status != win.Ok { |
| 138 | return nil, newError(fmt.Sprintf("GdipCreateBitmapFromFile failed with status '%s' for file '%s'", status, filePath)) |
| 139 | } |
| 140 | defer win.GdipDisposeImage((*win.GpImage)(gpBmp)) |
| 141 | |
| 142 | var hBmp win.HBITMAP |
| 143 | if status := win.GdipCreateHBITMAPFromBitmap(gpBmp, &hBmp, 0); status != win.Ok { |
| 144 | return nil, newError(fmt.Sprintf("GdipCreateHBITMAPFromBitmap failed with status '%s' for file '%s'", status, filePath)) |
| 145 | } |
| 146 | |
| 147 | return newBitmapFromHBITMAP(hBmp, dpi) |
| 148 | } |
| 149 | |
| 150 | // NewBitmapFromImage creates a Bitmap from image.Image at 96dpi. |
| 151 | // |
no test coverage detected
searching dependent graphs…