我们需要做一个东西
先使用ps制作图片,然后用vs将这个图片输出
思想是:先把这个图片制作好,然后用c++将其输出(因为只接触过C语言,有vc++的环境,这些都只学了基础课)
https://blog.csdn.net/marginmou/article/details/42525729#comments
不知道你这个问题是否已经解决, 如果还没有解决的话:答案:
可以使用Windows API中的GDI+来实现将图片输出。
步骤如下: 1. 导入GDI+库:
#pragma comment(lib,"gdiplus.lib")
#include <gdiplus.h>
using namespace Gdiplus;
Bitmap bmp(L"文件路径"); // 如果图片和代码在同一目录下可直接使用文件名,如:Bitmap bmp(L"pic.jpg");
if (bmp.GetLastStatus() != Ok) {
std::cerr << "Failed to load image!" << std::endl;
return 1;
}
HDC hdc = GetDC(NULL); // 获取屏幕DC
Graphics graphics(hdc);
graphics.DrawImage(&bmp, 0, 0, bmp.GetWidth(), bmp.GetHeight()); // 将图片画到DC上
ReleaseDC(NULL, hdc); // 释放屏幕DC
完整代码如下:
#pragma comment(lib,"gdiplus.lib")
#include <gdiplus.h>
using namespace Gdiplus;
int main()
{
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
Bitmap bmp(L"文件路径");
if (bmp.GetLastStatus() != Ok) {
std::cerr << "Failed to load image!" << std::endl;
return 1;
}
HDC hdc = GetDC(NULL);
Graphics graphics(hdc);
graphics.DrawImage(&bmp, 0, 0, bmp.GetWidth(), bmp.GetHeight());
ReleaseDC(NULL, hdc);
GdiplusShutdown(gdiplusToken);
return 0;
}
注意事项: - 如果不调用GdiplusStartup()和GdiplusShutdown()函数会导致内存泄露,所以必须在使用Gdiplus库之前调用GdiplusStartup(),在使用完之后调用GdiplusShutdown()。 - 要使用ULONG_PTR类型来存储返回值,因为在64位系统中ULONG是4字节,而ULONG_PTR是8字节。 - 绝对路径和相对路径都可以,但是相对路径必须要在可执行文件目录下有对应的图片。