Qt Convert Qpixmap To Q Image For Mac

 admin  

Your solution to the problem is not efficient, in particular it is less efficient then the code I posted on the other question you link to. Your problem is that you have to convert from grayscale to color, or RGBA. As soon as you need this conversation, naturally a copy of the data is needed. My solution does the conversion between grayscale and color, as well as between cv::Mat and QImage at the same time. That's why it is the most efficient you can get.

Load

In your solution, you first try to convert and then want to build QImage around OpenCV data directly to spare a second copy. But, the data you point to is temporary. As soon as you leave the function, the cv::Mat free's its associated memory and that's why it is not valid anymore also within the QImage. You could manually increase the reference counter of the cv::Mat beforehand, but that opens the door for a memory leak afterwards.

Qpixmap Loadfromdata

In the end, you attempt a dirty solution to a problem better solved in a clean fashion.

   Coments are closed