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;
	}
	
}
上一篇:通过command line使用texturepacker publish unity texture2D sprite


下一篇:Unity代码将文件夹中的图片在rawImage中显示