Unity使用OpenCVForUnity加载和保存webp格式的图片
public static class Texture2DExtend { public static void LoadFromWebp(this Texture2D texture2D, byte[] data) { MatOfByte matOfByte = new MatOfByte(data); OpenCVForUnity.Mat mat = Imgcodecs.imdecode(matOfByte, Imgcodecs.IMREAD_COLOR); texture2D.Resize(mat.cols(), mat.rows(), TextureFormat.RGBA32, false); OpenCVForUnity.Utils.matToTexture2D(mat, texture2D); matOfByte.Dispose(); mat.Dispose(); } public static byte[] EncodeToWebp(this Texture2D texture2D, int quality = 75) { OpenCVForUnity.Mat mat = new OpenCVForUnity.Mat(texture2D.height, texture2D.width, OpenCVForUnity.CvType.CV_8UC4); MatOfInt matOfInt = new MatOfInt(Imgcodecs.CV_IMWRITE_WEBP_QUALITY, quality); MatOfByte matOfByte = new MatOfByte(); OpenCVForUnity.Utils.texture2DToMat(texture2D, mat); Imgcodecs.imencode(".webp", mat, matOfByte, matOfInt); byte[] byteArray = matOfByte.toArray(); mat.Dispose(); matOfInt.Dispose(); matOfByte.Dispose(); return byteArray; } }
博客园Jason_c微信打赏码
如果本篇文档对你有帮助,打赏Jason_c根华子吧,他的私房钱被老婆没收了,呜呜!
浙公网安备 33010602011771号