这是我的第一篇文章,所以如果我不清楚地传达这个问题,请告诉我。
我试图在开发c ++中打开(黑白)jpeg或png图像文件作为数组,以便我可以隔离白色像素的位置。我理解的指针和隔离循环。但是,打开图像文件无法正常工作,并且无法找到我可以使用的示例。除了给定的 #include“cstdlib” #include“iostream” #include“stdio.h”
我没有其他头文件。 我知道fopen文件打开,但是我没有尝试显示图像数据。
感谢您的帮助
这不是我的代码。这是给我的BIV1991示例 我发布是因为没有找到gdiplus.h的标头。标题unknwn,windows,objidl被建议解决这个问题
#include <cstdlib>
#include <iostream>
#include <Unknwn.h>
#include <windows.h>
#include <objidl.h>
#include <gdiplus.h>
using namespace Gdiplus;
#pragma comment(lib,"gdiplus.lib")
int main(int argc, char *argv[])
{
// initialize gdiplus
Gdiplus::GdiplusStartupInput si;
ULONG_PTR token;
Gdiplus::GdiplusStartup(&token,&si,0);
// load image as bitmap, any formats supported
Gdiplus::Bitmap image(L"C:\\image.jpg",false);
int w = image.GetWidth();
// image.LockBits - to read pixels
system("PAUSE");
return EXIT_SUCCESS;
}
答案 0 :(得分:2)
如果您使用Windows编程,您可以使用GDIPlus读取Jpeg和其他图像类型并使用它们,例如绘图或获取它们的像素。保证100%。我做了很多次。
什么是包括:
#include <gdiplus.h>
#pragma comment(lib,"gdiplus.lib")
代码:
中的操作// initialize gdiplus
Gdiplus::GdiplusStartupInput si;
ULONG_PTR token;
Gdiplus::GdiplusStartup(&token,&si,0);
// load image, any formats supported
Gdiplus::Bitmap image(L"C:\\image.jpg",false);
int w = image.GetWidth();
// image.LockBits - to read pixels
答案 1 :(得分:0)
首先,没有标准的C ++库来处理图像。其次,jpeg和png图像格式是压缩图像格式,需要一些复杂的解压缩算法。因此,要开始使用图像,您有两种方法:
使用简单的图像格式,如bmp。 bmp只是像素缓冲区 用一些光头,描述像素缓冲格式。您可以 写一个程序将bmp加载到我们自己的一半(并浪费 约一个小时了解格式本身)。更多关于bmp: http://en.wikipedia.org/wiki/BMP_file_format。
使用EXTERNAL 图书馆。也就是说,你没有这个库与您的语言或 编译包。您需要下载甚至安装它 有时。一般来说,要使用外部库,您需要做五个 大腿:1)在Internet上查找图像处理库。 2)将xxx.lib文件放在项目文件夹中。 3)告诉你的链接器你想使用xxx.lib 4)添加你的代码#include“xxx.h”。 5)使用库API加载图像。