本文主要是介绍C++使用gdiplus库加载图片_艾孜尔江撰,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
#include "LoadBitmap.h"
#include <windows.h>
#include <gdiplus.h>
#include <iostream>
#include <fstream>
#include <sstream>
#pragma comment(lib, "gdiplus.lib")
using namespace std;
using namespace Gdiplus;
Texture2D MathUtil::LoadBitmapToColorArray(wstring filePath)
{
GdiplusStartupInput gdiplusstartupinput;
ULONG_PTR gdiplustoken;
GdiplusStartup(&gdiplustoken, &gdiplusstartupinput, nullptr);
Bitmap* bmp = new Bitmap(filePath.c_str());
if (!bmp)
{
MessageBox(nullptr, "error", "picture path is null!", MB_OK);
delete bmp;
GdiplusShutdown(gdiplustoken);
return Texture2D(0,0);
}
else
{
UINT height = bmp->GetHeight();
UINT width = bmp->GetWidth();
//³õʼ»¯Texture2D
Texture2D texture(width, height);
Color color;
for (int y = 0; y < height; y++)
for (int x = 0; x < width; x++)
{
bmp->GetPixel(x, y, &color);
texture.m_pixelBuffer[x][height - 1 - y] = MVector(
color.GetRed() / 255.f,
color.GetGreen() / 255.f,
color.GetBlue() / 255.f,
1.f
);
}
delete bmp;
GdiplusShutdown(gdiplustoken);
return texture;
}
}
这篇关于C++使用gdiplus库加载图片_艾孜尔江撰的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!