2015-05-08 16:02:36 +00:00
|
|
|
/*
|
2023-06-23 14:04:32 +03:00
|
|
|
* PROJECT: PAINT for ReactOS
|
|
|
|
* LICENSE: LGPL-2.0-or-later (https://spdx.org/licenses/LGPL-2.0-or-later)
|
|
|
|
* PURPOSE: Some DIB related functions
|
2023-06-27 21:22:21 +03:00
|
|
|
* COPYRIGHT: Copyright 2015 Benedikt Freisen <b.freisen@gmx.net>
|
2015-05-08 16:02:36 +00:00
|
|
|
*/
|
|
|
|
|
2017-12-09 13:36:45 +01:00
|
|
|
#pragma once
|
|
|
|
|
2023-08-20 16:46:18 +09:00
|
|
|
BOOL IsBitmapBlackAndWhite(HBITMAP hbm);
|
2015-05-08 16:02:36 +00:00
|
|
|
HBITMAP CreateDIBWithProperties(int width, int height);
|
2023-06-19 09:56:02 +09:00
|
|
|
HBITMAP CreateMonoBitmap(int width, int height, BOOL bWhite);
|
2020-04-29 07:44:18 +09:00
|
|
|
HBITMAP CreateColorDIB(int width, int height, COLORREF rgb);
|
2023-06-16 08:05:23 +09:00
|
|
|
HBITMAP CachedBufferDIB(HBITMAP hbm, int minimalWidth, int minimalHeight);
|
2023-08-20 16:46:18 +09:00
|
|
|
HBITMAP ConvertToBlackAndWhite(HBITMAP hbm);
|
2015-05-08 16:02:36 +00:00
|
|
|
|
2023-06-19 09:56:02 +09:00
|
|
|
HBITMAP CopyMonoImage(HBITMAP hbm, INT cx = 0, INT cy = 0);
|
|
|
|
|
2022-01-10 08:50:37 +09:00
|
|
|
static inline HBITMAP CopyDIBImage(HBITMAP hbm, INT cx = 0, INT cy = 0)
|
|
|
|
{
|
|
|
|
return (HBITMAP)CopyImage(hbm, IMAGE_BITMAP, cx, cy, LR_COPYRETURNORG | LR_CREATEDIBSECTION);
|
|
|
|
}
|
|
|
|
|
2015-05-08 16:02:36 +00:00
|
|
|
int GetDIBWidth(HBITMAP hbm);
|
|
|
|
int GetDIBHeight(HBITMAP hbm);
|
|
|
|
|
2023-08-09 23:59:34 +09:00
|
|
|
BOOL SaveDIBToFile(HBITMAP hBitmap, LPCWSTR FileName, BOOL fIsMainFile, REFGUID guidFileType = GUID_NULL);
|
2015-05-08 16:02:36 +00:00
|
|
|
|
2023-07-05 12:06:22 +09:00
|
|
|
HBITMAP DoLoadImageFile(HWND hwnd, LPCWSTR name, BOOL fIsMainFile);
|
2015-05-08 16:02:36 +00:00
|
|
|
|
2023-07-05 12:06:22 +09:00
|
|
|
void SetFileInfo(LPCWSTR name, LPWIN32_FIND_DATAW pFound, BOOL isAFile);
|
2020-04-29 07:44:18 +09:00
|
|
|
|
2023-07-05 12:06:22 +09:00
|
|
|
HBITMAP InitializeImage(LPCWSTR name, LPWIN32_FIND_DATAW pFound, BOOL isFile);
|
|
|
|
HBITMAP SetBitmapAndInfo(HBITMAP hBitmap, LPCWSTR name, LPWIN32_FIND_DATAW pFound, BOOL isFile);
|
2022-02-14 12:08:34 +09:00
|
|
|
|
2023-04-01 22:01:04 +09:00
|
|
|
HBITMAP Rotate90DegreeBlt(HDC hDC1, INT cx, INT cy, BOOL bRight, BOOL bMono);
|
2022-02-14 16:18:18 +09:00
|
|
|
|
2023-06-19 09:56:02 +09:00
|
|
|
HBITMAP SkewDIB(HDC hDC1, HBITMAP hbm, INT nDegree, BOOL bVertical, BOOL bMono = FALSE);
|
2023-03-28 22:31:26 +09:00
|
|
|
|
2023-06-04 11:24:00 +09:00
|
|
|
float PpcmFromDpi(float dpi);
|
|
|
|
|
|
|
|
#define ROUND(x) (INT)((x) + 0.5)
|
2023-06-18 19:48:20 +09:00
|
|
|
|
|
|
|
HGLOBAL BitmapToClipboardDIB(HBITMAP hBitmap);
|
|
|
|
HBITMAP BitmapFromClipboardDIB(HGLOBAL hGlobal);
|
|
|
|
HBITMAP BitmapFromHEMF(HENHMETAFILE hEMF);
|
2023-11-18 14:25:19 +09:00
|
|
|
HBITMAP getSubImage(HBITMAP hbmWhole, const RECT& rcPartial);
|
|
|
|
void putSubImage(HBITMAP hbmWhole, const RECT& rcPartial, HBITMAP hbmPart);
|