Closed moyang628 closed 5 months ago
You should use the imdecode function, but first convert the slice to Vector<u8>
by calling Vector::<u8>::from_slice(jpeg_buff)
. If you want to avoid copying the buffer and don't mind a little bit of unsafe then instead of Vector
you can use Mat
:
unsafe { Mat::new_rows_cols_with_data_def(1, jpg_buff.len() as i32, u8::opencv_type(), jpg_buff.as_mut_ptr().cast::<c_void>()) }
Just make sure that you drop this Mat
before you drop the jpeg_buff
.
thanks.
converting the slice to Vector
but the new_rows_cols_with_data_def dont work. the
unsafe { Mat::new_rows_cols_with_data_def(1, jpg_buff.len() as i32, u8::opencv_type(), jpg_buff.as_mut_ptr().cast::<c_void>()) }
You should use the imdecode function, but first convert the slice to
Vector<u8>
by callingVector::<u8>::from_slice(jpeg_buff)
. If you want to avoid copying the buffer and don't mind a little bit of unsafe then instead ofVector
you can useMat
:unsafe { Mat::new_rows_cols_with_data_def(1, jpg_buff.len() as i32, u8::opencv_type(), jpg_buff.as_mut_ptr().cast::<c_void>()) }
Just make sure that you drop this
Mat
before you drop thejpeg_buff
.
When you say it doesn't work what kind of error are you getting?
I'm going to close this for now with the hope that you made it work, but feel free to reopen and supply additional details if it's not the case.
Hi,
I got a jpeg buff ,I want to convert it to opencv Mat for more image opration .
I have tried the Mat::from_raw 、Mat::new_rows_cols_with_data_def 、Mat::from_slice 、Mat::from_slice_rows_cols
it all got wrong,
now I have to save it as jpeg file and imread from it .
Is there a direct way to do that?