小编F.F*_*poo的帖子

如何将屏幕截图写成 PNG?

我在网上找到这个代码打印屏幕(截图),但我不知道如何修改它以将结果保存到PNG文件。

我可以将位图保存到剪贴板,但我现在需要保存到 PNG 文件。

  • 是否可以从剪贴板中提取位图并将其保存为 PNG 文件?
  • 这可以做不同的事情吗?
  • 如果是这样,如何?

到目前为止我的代码是:

#include <iostream>
#include <windows.h>
#include <gdiplus.h>
#include <stdexcept>

 using namespace std;
 using namespace Gdiplus;
 using namespace Gdiplus::DllExports;
 using std::runtime_error;

void screenshot(POINT a, POINT b)
{

    HDC     hScreen = GetDC(NULL);
    HDC     hDc     = CreateCompatibleDC(hScreen);
    HBITMAP hBitmap = CreateCompatibleBitmap(hScreen, abs(b.x-a.x), abs(b.y-a.y));
    HGDIOBJ old_obj = SelectObject(hDc, hBitmap);
    BOOL    bRet    =  BitBlt(hDc, 0, 0, abs(b.x-a.y), abs(b.y-a.y), hScreen, a.x, a.y, SRCCOPY);

    OpenClipboard(NULL);
    EmptyClipboard();
    SetClipboardData(CF_BITMAP, hBitmap);
    CloseClipboard();


    SelectObject(hDc, old_obj);
    DeleteDC(hDc);
    ReleaseDC(NULL, hScreen);
    DeleteObject(hBitmap);
}

int main() …
Run Code Online (Sandbox Code Playgroud)

c++ windows png gdi+ bitmap

3
推荐指数
1
解决办法
1783
查看次数

如何制作全局空整数?

如何声明全局空整数?我有简单的代码,但我不知道如何在 def 之前声明一个变量。在 Java 中,我可以做到这一点: public int a; 但是如何在python中做到这一点?没有这个,第三个如果不工作

我的代码:

def abcd:
if s<0.72:
    if e>30:
        a=0
        return a

    else:
        a=0
        return a
else:
    if a == 1:
        a = 1
        return a
    else:
        a=1
        return a
while True:
abcd
Run Code Online (Sandbox Code Playgroud)

python integer if-statement declaration global-variables

2
推荐指数
1
解决办法
3万
查看次数