读取ppm P6图像,存储到数组中并打印数组C ++

时间:2017-11-25 13:26:28

标签: c++ arrays ppm

我对编程很陌生,所以请原谅我的无知。我一直试图将ppm文件存储到数组中然后打印我存储的内容。我期待看到从0到255的数字。我甚至不知道这是否可能, 但是当我打印我的数组时,我得到的是这样的随机数:

我是0;价值是32 我是1;值是-101 我是2;价值是82 我是3岁;价值是78 我是4岁;值是-77等。

我想要做的就是确保我已经将正确的东西存储到我的阵列中,以便正确地改变它。因此,如果有其他方法可以做到这一点,而且我的方式不对,那么知道这将是非常有帮助的。

这是我的代码:

        float * ReadPPM(const char * filename, int * w, int * h) {
        ifstream myfile;
        myfile.open(filename,  ios::binary);
        if (myfile.is_open())
        {
            int i = 0;
            cout << "File successfully open" << endl;
            myfile.ignore(2, ' ');
            int width;
            int height;
            myfile >> width;
            myfile >> height;
            myfile.ignore(4, ' ');

            w = & width;
            h = & height;

            cout << width << endl;
            cout << height << endl;
            int size = width*height * 3;
        char * buffer = new char[size];
            myfile.read(buffer, size);



            while (i < 500) {
                cout << "i is " << i << "; value is " << (float)(buffer[i]) << endl;
                i++;
            }



            delete[] buffer;
            system("PAUSE");

我实际上必须将它们存储到一个float数组中,但我现在使用char,因为我相信它对我来说更容易理解。

0 个答案:

没有答案