где сверху приходит бинарная строка img_str, потом с помощью PIL
img = Image.fromstring(“L”, (size, size), img_str)
img.save('test_image.png')
проверяю test.dat получен с помощью
fd= open(“test.dat”,'wb')"))
fd.write(img_str)
fd.close()
через интерпертатор картинка валидная
>>> import Image
>>> fd=open(“C:/test.dat”,'rb')
>>> s=fd.read()
>>> len(s)/512
512
>>> im=Image.fromstring(“L”,(512,512),s)
>>> im.show()
пытаюсь прочитать через c++ и opencv
const char *filename = "C:/test.dat"; ifstream infile(filename, fstream::in/*,fstream::binary*/); //картинка у нас одноканальная заданного размера infile.seekg(0,ios::end); int file_size=infile.tellg(); infile.seekg(0,ios::beg); std::vector<unsigned char> data(file_size, 0); infile.read(reinterpret_cast<char*>(&data[0]), file_size); cv::Mat img(data); int c= img.channels(); cv::Mat r= img.reshape(0,512); imwrite("C:/test.png",r);