Tôi có một mảng nổi đại diện cho Hình ảnh. (Cột đầu tiên). Tôi muốn hiển thị hình ảnh trên QGraphicsSecene dưới dạng QPixmap. Để làm điều đó tôi đã cố gắng tạo một hình ảnh mới từ mảng của tôi với hàm tạo QImage - QImage (dữ liệu const uchar *, int width, int height, Format format). đầu tiên tôi tạo ra một char unsigned mới và đúc mỗi giá trị từ mảng ban đầu của tôi để mới một char unsigned, và sau đó cố gắng để tạo ra một hình ảnh mới với đoạn mã sau:cách tạo một QImage mới từ một mảng nổi
unsigned char * data = new unsigned char[fres.length()];
for (int i =0; i < fres.length();i++)
data[i] = char(fres.dataPtr()[i]);
bcg = new QImage(data,fres.cols(),fres.rows(),1,QImage::Format_Mono);
Vấn đề là khi tôi cố gắng truy cập thông tin theo cách sau:
bcg-> pixel (i, j);
Tôi chỉ nhận được giá trị 12345. Tôi làm cách nào để tạo hình ảnh có thể xem từ mảng của mình. Cảm ơn
bạn có thể hiển thị float -> uchar chuyển đổi? – strager
Và dữ liệu gốc đại diện cho điều gì? Là mỗi float 0..1 đại diện cho black..white? Có kênh màu hay chỉ màu xám? – strager
Không cần tạo QImage trên heap, btw. Nó được chia sẻ hoàn toàn (copy-on-write). –