Я нашел здесь код С ++ для чтения/записи изображений. Я хотел бы улучшить его, чтобы я мог поворачивать и т. Д. Изображения. Однако вначале у меня есть некоторые проблемы. Когда я пишу изображение, кажется, что моя функция чтения читает только часть его, так как он записывает в файл только часть исходного изображения. См. Мой код и ввод, вывод изображений.Чтение/Запись PPM изображение C++, новое изображение нарушено
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(int argc, char **argv)
{
ifstream in;
in.open("OldImage.ppm", std::ios::binary);
ofstream out;
std::string magic_number;
int width, height, maxColVal, i, j;
in >> magic_number;
in >> width >> height >> maxColVal;
in.get();
char **image;
image = new char* [width];
for(i=0; i<width; i++)
{
image[i] = new char [height];
for(j=0; j<height; j++)
{
in >> image[i][j];
}
}
out.open("NewImage.ppm", std::ios::binary);
out << "P3" << "\n"
<< width << " "
<< height << "\n"
<< maxColVal << "\n"
;
for(i=0; i<width; i++)
{
for(j=0; j<height; j++)
{
out << image[i][j];
}
}
in.clear();
in.close();
out.clear();
out.close();
return 0;
}
Входное изображение:https://www.dropbox.com/s/c0103eyhxzimk0j/OldImage.ppm?dl=0
Выход изображения:https://www.dropbox.com/s/429i114c05gb8au/NewImage.ppm?dl=0
это не решило мою проблему – yak