[{"data":1,"prerenderedAt":211},["ShallowReactive",2],{"doc-\u002Fdocs\u002Fapi\u002Feduwin-image-api":3},{"id":4,"title":5,"body":6,"description":23,"extension":205,"meta":206,"navigation":137,"path":207,"seo":208,"stem":209,"__hash__":210},"content\u002Fdocs\u002Fapi\u002Feduwin-image-api.md","eduwin 图像 API",{"type":7,"value":8,"toc":200},"minimark",[9,13,17,34,54,57,79,82,85,100,108,118,151,153,156,165,187,196],[10,11,5],"h1",{"id":12},"eduwin-图像-api",[14,15,16],"h2",{"id":16},"图像加载",[18,19,24],"pre",{"className":20,"code":21,"language":22,"meta":23,"style":23},"language-c shiki shiki-themes github-light github-dark","void *load_image_from_file(const WCHAR *filepath, int *width, int *height);\n","c","",[25,26,27],"code",{"__ignoreMap":23},[28,29,32],"span",{"class":30,"line":31},"line",1,[28,33,21],{},[35,36,37,38,41,42,45,46,49,50,53],"p",{},"从文件加载图像（bmp \u002F png \u002F jpg 等），返回不透明句柄（实际为 GDI+ 的 ",[25,39,40],{},"GpImage*","，对用户透明）。如果不需要尺寸信息，",[25,43,44],{},"width"," 和 ",[25,47,48],{},"height"," 可传 ",[25,51,52],{},"NULL","。",[35,55,56],{},"返回的句柄由内部管理，用户不需要手动释放。主要用于需要获得图片原始尺寸或传入画布绘制的场景：",[18,58,60],{"className":20,"code":59,"language":22,"meta":23,"style":23},"int w, h;\nvoid *img = load_image_from_file(L\"photo.png\", &w, &h);\n\u002F\u002F 现在 w \u002F h 是图片的原始像素宽高\n",[25,61,62,67,73],{"__ignoreMap":23},[28,63,64],{"class":30,"line":31},[28,65,66],{},"int w, h;\n",[28,68,70],{"class":30,"line":69},2,[28,71,72],{},"void *img = load_image_from_file(L\"photo.png\", &w, &h);\n",[28,74,76],{"class":30,"line":75},3,[28,77,78],{},"\u002F\u002F 现在 w \u002F h 是图片的原始像素宽高\n",[80,81],"hr",{},[14,83,84],{"id":84},"图片控件",[18,86,88],{"className":20,"code":87,"language":22,"meta":23,"style":23},"HWND create_image(HWND parent, const WCHAR *filepath, int x, int y, int w, int h);\nvoid set_image(HWND img, const WCHAR *filepath);\n",[25,89,90,95],{"__ignoreMap":23},[28,91,92],{"class":30,"line":31},[28,93,94],{},"HWND create_image(HWND parent, const WCHAR *filepath, int x, int y, int w, int h);\n",[28,96,97],{"class":30,"line":69},[28,98,99],{},"void set_image(HWND img, const WCHAR *filepath);\n",[35,101,102,103,107],{},"创建一个图片显示控件。支持 ",[104,105,106],"strong",{},"bmp \u002F png \u002F jpg \u002F jpeg \u002F gif"," 等格式（内部使用 GDI+ 解码）。图片会自动缩放适配控件区域。",[35,109,110,113,114,117],{},[25,111,112],{},"create_image"," 在创建时直接加载文件显示；",[25,115,116],{},"set_image"," 可在运行时动态切换图片。",[18,119,121],{"className":20,"code":120,"language":22,"meta":23,"style":23},"\u002F\u002F 显示 PNG 图片\nHWND img = create_image(main, L\"photo.png\", 10, 10, 200, 150);\n\n\u002F\u002F 运行时切换为 JPG\nset_image(img, L\"photo.jpg\");\n",[25,122,123,128,133,139,145],{"__ignoreMap":23},[28,124,125],{"class":30,"line":31},[28,126,127],{},"\u002F\u002F 显示 PNG 图片\n",[28,129,130],{"class":30,"line":69},[28,131,132],{},"HWND img = create_image(main, L\"photo.png\", 10, 10, 200, 150);\n",[28,134,135],{"class":30,"line":75},[28,136,138],{"emptyLinePlaceholder":137},true,"\n",[28,140,142],{"class":30,"line":141},4,[28,143,144],{},"\u002F\u002F 运行时切换为 JPG\n",[28,146,148],{"class":30,"line":147},5,[28,149,150],{},"set_image(img, L\"photo.jpg\");\n",[80,152],{},[14,154,155],{"id":155},"图标控件",[18,157,159],{"className":20,"code":158,"language":22,"meta":23,"style":23},"HWND create_icon(HWND parent, const WCHAR *filepath, int x, int y, int w, int h);\n",[25,160,161],{"__ignoreMap":23},[28,162,163],{"class":30,"line":31},[28,164,158],{},[35,166,167,168,171,172,175,176,179,180,175,183,186],{},"创建一个图标显示控件，加载 ",[25,169,170],{},".ico"," 文件并以系统标准图标大小居中显示。",[25,173,174],{},"w"," \u002F ",[25,177,178],{},"h"," 参数控制控件占位区域的大小，实际图标按系统尺寸（",[25,181,182],{},"SM_CXICON",[25,184,185],{},"SM_CYICON","）绘制。",[18,188,190],{"className":20,"code":189,"language":22,"meta":23,"style":23},"HWND icon = create_icon(main, L\"app.ico\", 220, 10, 48, 48);\n",[25,191,192],{"__ignoreMap":23},[28,193,194],{"class":30,"line":31},[28,195,189],{},[197,198,199],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":23,"searchDepth":69,"depth":69,"links":201},[202,203,204],{"id":16,"depth":69,"text":16},{"id":84,"depth":69,"text":84},{"id":155,"depth":69,"text":155},"md",{},"\u002Fdocs\u002Fapi\u002Feduwin-image-api",{"title":5,"description":23},"docs\u002Fapi\u002Feduwin-image-api","EamWpv131y5Y5z1mcqmHX4Vl1PnBimNi4O4ixMiXNSo",1782488679847]