我是新的C++和被具有使用GDI +库在存储器中创建新的位图(因此不是打开/读出一个现有的位图)写的函数麻烦; 然后绘制位图; 在保存到png之前.特别是,我在创建位图和保存代码方面遇到了问题.我被限制使用代码块,即使我想,我也不能使用视觉工作室.代码如下:
#include "drawImage.h"
#include <windows.h>
#include <objidl.h>
#include <gdiplus.h>
#include <stdio.h>
#include <iostream>
using namespace std;
using namespace Gdiplus;
drawImage::drawImage(){}
void drawImage::DrawBitmap(int width, int height){
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
{
//Create a bitmap
Bitmap myBitmap(width, height, PixelFormatCanonical);
Graphics g(&myBitmap);
Pen blackpen(Color(255,0,0,0), 3);
//draw on bitmap
int x1 = 1;
int x2 = 200;
int y1 = 1;
int y2 = 200;
g.DrawLine(&blackpen, x1,y1,x2,y2);
// Save bitmap (as a png)
CLSID pngClsid;
GetEncoderClsid(L"image/png", &pngClsid);
myBitmap.Save(L"C:\\test\\test.png", …Run Code Online (Sandbox Code Playgroud) 我试图在Windows 7 64位上使用C++和Visual Studio Express 2013将一些数据写入PNG文件.我明白要做到这一点,我需要使用外部库,但这里是我遇到一些困难的地方.
我尝试使用LodePNG - 它看起来简单,轻巧,易于使用.问题是,它很简单,并且似乎需要某种像素格式的数据与我所拥有的不匹配.我可以修改我的数据以使其与LodePNG兼容,但我更喜欢使用像libpng这样的库,并且具有更大的灵活性.
但是,我不了解构建或链接库的第一件事,并且libpng已经被证明是一个绝对的噩梦.我尝试按照本指南,设法生成"libpng.lib"和"png.h",但是当我尝试将这些文件包含在我的项目中时(我将两个文件放在我的项目目录中,将"png.h"添加到我的项目中)头文件并将"libpng.lib"添加到链接器的"附加依赖关系"字段中),我收到了大量的构建错误,特别是:
error C1083: Cannot open include file: 'pnglibconf.h': No such file or directory
Run Code Online (Sandbox Code Playgroud)
任何人都可以请教我如何安装libpng,指导我一个关于这个主题的好指南(我很惊讶那里没有指南...),或推荐一个不同的(轻量级,易于安装)PNG图书馆?我在这里疯了.