YYPOST群发软件 发表于 2025-3-11 08:38:06

AiWROK软件里的OpenCV图片分辨率压缩和质量压缩

<ne-clipboard data="%7B%22type%22%3A%22fragment%22%2C%22name%22%3A%22%23fragment%22%2C%22children%22%3A%5B%7B%22type%22%3A%22element%22%2C%22id%22%3A%22uf81a71d8%22%2C%22name%22%3A%22p%22%2C%22attrs%22%3A%7B%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u68977952%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E4%B8%BB%E8%A6%81%E5%8C%85%E5%90%AB%E4%B8%A4%E7%A7%8D%E5%8E%8B%E7%BC%A9%E6%96%B9%E5%BC%8F%EF%BC%9A%E5%88%86%E8%BE%A8%E7%8E%87%E5%8E%8B%E7%BC%A9%E5%92%8C%E8%B4%A8%E9%87%8F%E5%8E%8B%E7%BC%A9%E3%80%82%E4%BB%A5%E4%B8%8B%E6%98%AF%E4%BB%A3%E7%A0%81%E7%9A%84%E8%AF%A6%E7%BB%86%E8%A7%A3%E9%87%8A%EF%BC%9A%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u20fbf403%22%2C%22name%22%3A%22p%22%2C%22attrs%22%3A%7B%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22uf56efcc1%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22-----%20%E5%9F%BA%E7%A1%80%E5%87%86%E5%A4%87%20-----%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u3a840587%22%2C%22name%22%3A%22oli%22%2C%22attrs%22%3A%7B%22list%22%3A%22u0a312689%22%2C%22fid%22%3A%22ua1112f75%22%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5B%5D%2C%22index%22%3A0%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22uadfbfe88%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E7%B1%BB%E5%BA%93%E5%AF%BC%E5%85%A5%EF%BC%9A%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22ubb524246%22%2C%22name%22%3A%22uli%22%2C%22attrs%22%3A%7B%22list%22%3A%22u92789c69%22%2C%22fid%22%3A%22ud094086c%22%2C%22level%22%3A1%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5Bnull%5D%2C%22index%22%3A0%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u2ca4ac1d%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E5%AF%BC%E5%85%A5Android%E5%9B%BE%E5%BD%A2%E7%B1%BB%EF%BC%88Bitmap%EF%BC%89%E3%80%81%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C%E7%B1%BB%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22uc4d65b6e%22%2C%22name%22%3A%22uli%22%2C%22attrs%22%3A%7B%22list%22%3A%22u92789c69%22%2C%22fid%22%3A%22ud094086c%22%2C%22level%22%3A1%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5Bnull%5D%2C%22index%22%3A1%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u1bd638b1%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E5%AF%BC%E5%85%A5OpenCV%E6%A0%B8%E5%BF%83%E5%BA%93%E5%92%8C%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86%E7%B1%BB%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22ud867e4bb%22%2C%22name%22%3A%22uli%22%2C%22attrs%22%3A%7B%22list%22%3A%22u92789c69%22%2C%22fid%22%3A%22ud094086c%22%2C%22level%22%3A1%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5Bnull%5D%2C%22index%22%3A2%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22ucb4421c4%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E4%BD%BF%E7%94%A8%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%E9%9C%80%E8%A6%81Auto.js%E7%9A%84screen%E5%AF%B9%E8%B1%A1%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u19e4c1d6%22%2C%22name%22%3A%22oli%22%2C%22attrs%22%3A%7B%22list%22%3A%22u0a312689%22%2C%22fid%22%3A%22ua1112f75%22%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5B%5D%2C%22index%22%3A1%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22ue0616685%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E5%85%A8%E5%B1%8F%E6%88%AA%E5%9B%BE%EF%BC%9A%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u3995dad2%22%2C%22name%22%3A%22hole%22%2C%22attrs%22%3A%7B%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22card%22%2C%22id%22%3A%22SOhCh%22%2C%22name%22%3A%22codeblock%22%2C%22attrs%22%3A%7B%22value%22%3A%7B%22mode%22%3A%22javascript%22%2C%22code%22%3A%22var%20img%20%3D%20screen.screenShotFull()%3B%20%2F%2F%20%E8%8E%B7%E5%8F%96%E5%85%A8%E5%B1%8F%E6%88%AA%E5%9B%BE%5Cnimg.save(originalPath)%3B%20%2F%2F%20%E4%BF%9D%E5%AD%98%E5%8E%9F%E5%A7%8B%E5%9B%BE%E7%89%87%22%2C%22autoWrap%22%3Afalse%2C%22lineNumbers%22%3Atrue%2C%22heightLimit%22%3Atrue%2C%22collapsed%22%3Afalse%2C%22hideToolbar%22%3Afalse%2C%22name%22%3A%22%22%2C%22tabSize%22%3Anull%2C%22indentWithTab%22%3Afalse%2C%22lightLines%22%3A%5B%5D%2C%22foldLines%22%3A%5B%5D%2C%22theme%22%3A%22Github%20Light%22%2C%22__spacing%22%3A%22both%22%7D%2C%22cardType%22%3A%22block%22%7D%2C%22cardType%22%3A%22block%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u97cccebe%22%2C%22name%22%3A%22p%22%2C%22attrs%22%3A%7B%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22uc34a34fc%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22color%22%3A%22white%22%2C%22bgColor%22%3A%22rgb(39%2C%2040%2C%2034)%22%2C%22fontsize%22%3A13%7D%2C%22data%22%3A%22%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u26b26b1e%22%2C%22name%22%3A%22p%22%2C%22attrs%22%3A%7B%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u803a032d%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22-----%20%E6%A0%B8%E5%BF%83%E6%96%B9%E6%B3%95%20-----%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22ua5dd340b%22%2C%22name%22%3A%22oli%22%2C%22attrs%22%3A%7B%22list%22%3A%22ue28cb7f4%22%2C%22fid%22%3A%22u6105b07e%22%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5B%5D%2C%22index%22%3A0%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22ub92c7ec3%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E5%88%86%E8%BE%A8%E7%8E%87%E5%8E%8B%E7%BC%A9%E6%96%B9%E6%B3%95%EF%BC%88resizeCompress%EF%BC%89%EF%BC%9A%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u8c97d323%22%2C%22name%22%3A%22uli%22%2C%22attrs%22%3A%7B%22list%22%3A%22ud7846a72%22%2C%22fid%22%3A%22u92ec901d%22%2C%22level%22%3A1%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5Bnull%5D%2C%22index%22%3A0%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u903604f1%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E6%8C%89%E6%AF%94%E4%BE%8B%E7%BC%A9%E5%B0%8F%E5%B0%BA%E5%AF%B8%EF%BC%9A%E4%BF%9D%E6%8C%81%E5%AE%BD%E9%AB%98%E6%AF%94%E8%AE%A1%E7%AE%97%E7%9B%AE%E6%A0%87%E9%AB%98%E5%BA%A6%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u4058c342%22%2C%22name%22%3A%22uli%22%2C%22attrs%22%3A%7B%22list%22%3A%22ud7846a72%22%2C%22fid%22%3A%22u92ec901d%22%2C%22level%22%3A1%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5Bnull%5D%2C%22index%22%3A1%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u9a6a809e%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E4%BD%BF%E7%94%A8OpenCV%E7%9A%84INTER_AREA%E7%AE%97%E6%B3%95%EF%BC%88%E9%80%82%E5%90%88%E7%BC%A9%E5%B0%8F%E5%9B%BE%E5%83%8F%E7%9A%84%E6%8F%92%E5%80%BC%E7%AE%97%E6%B3%95%EF%BC%89%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u99128dcc%22%2C%22name%22%3A%22uli%22%2C%22attrs%22%3A%7B%22list%22%3A%22ud7846a72%22%2C%22fid%22%3A%22u92ec901d%22%2C%22level%22%3A1%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5Bnull%5D%2C%22index%22%3A2%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u628908dc%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E8%BD%AC%E6%8D%A2Bitmap%E6%97%B6%E4%BD%BF%E7%94%A8RGB_565%E9%85%8D%E7%BD%AE%EF%BC%88%E6%AF%94%E9%BB%98%E8%AE%A4ARGB_8888%E8%8A%82%E7%9C%8150%25%E5%86%85%E5%AD%98%EF%BC%89%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22ufbb2e8eb%22%2C%22name%22%3A%22uli%22%2C%22attrs%22%3A%7B%22list%22%3A%22ud7846a72%22%2C%22fid%22%3A%22u92ec901d%22%2C%22level%22%3A1%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5Bnull%5D%2C%22index%22%3A3%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u17aa4022%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E4%BF%9D%E5%AD%98%E8%B4%A8%E9%87%8F%E4%B8%BA85%E7%9A%84JPEG%E6%96%87%E4%BB%B6%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u91a4461d%22%2C%22name%22%3A%22oli%22%2C%22attrs%22%3A%7B%22list%22%3A%22ue28cb7f4%22%2C%22fid%22%3A%22u6105b07e%22%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5B%5D%2C%22index%22%3A1%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22ue0cb3282%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E8%B4%A8%E9%87%8F%E5%8E%8B%E7%BC%A9%E6%96%B9%E6%B3%95%EF%BC%88qualityCompress%EF%BC%89%EF%BC%9A%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22uebb13d5d%22%2C%22name%22%3A%22uli%22%2C%22attrs%22%3A%7B%22list%22%3A%22u1d7e8cd6%22%2C%22fid%22%3A%22uf83503db%22%2C%22level%22%3A1%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5Bnull%5D%2C%22index%22%3A0%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u79360f79%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E7%9B%B4%E6%8E%A5%E8%B0%83%E6%95%B4JPEG%E5%8E%8B%E7%BC%A9%E8%B4%A8%E9%87%8F%EF%BC%880-100%E8%8C%83%E5%9B%B4%EF%BC%8C%E5%80%BC%E8%B6%8A%E5%B0%8F%E5%8E%8B%E7%BC%A9%E6%AF%94%E8%B6%8A%E9%AB%98%EF%BC%89%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22ucbee2cdc%22%2C%22name%22%3A%22uli%22%2C%22attrs%22%3A%7B%22list%22%3A%22u1d7e8cd6%22%2C%22fid%22%3A%22uf83503db%22%2C%22level%22%3A1%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5Bnull%5D%2C%22index%22%3A1%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22uc61d366b%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E4%B8%8D%E6%94%B9%E5%8F%98%E5%9B%BE%E7%89%87%E5%B0%BA%E5%AF%B8%EF%BC%8C%E4%BB%85%E9%99%8D%E4%BD%8E%E6%96%87%E4%BB%B6%E8%B4%A8%E9%87%8F%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u5a47757d%22%2C%22name%22%3A%22p%22%2C%22attrs%22%3A%7B%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u04e55c83%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22-----%20%E6%89%A7%E8%A1%8C%E6%B5%81%E7%A8%8B%20-----%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22ua7f2ee1c%22%2C%22name%22%3A%22oli%22%2C%22attrs%22%3A%7B%22list%22%3A%22uf3c1f244%22%2C%22fid%22%3A%22u395cb405%22%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5B%5D%2C%22index%22%3A0%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u8d117dbe%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E5%8E%9F%E5%A7%8B%E6%88%AA%E5%9B%BE%E4%BF%9D%E5%AD%98%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u9901d552%22%2C%22name%22%3A%22uli%22%2C%22attrs%22%3A%7B%22list%22%3A%22ubbe793f9%22%2C%22fid%22%3A%22u1965ff7c%22%2C%22level%22%3A1%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5Bnull%5D%2C%22index%22%3A0%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22uc509cede%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E5%AD%98%E5%82%A8%E8%B7%AF%E5%BE%84%EF%BC%9A%2Fsdcard%2Foriginal.jpg%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u4c71d2bd%22%2C%22name%22%3A%22uli%22%2C%22attrs%22%3A%7B%22list%22%3A%22ubbe793f9%22%2C%22fid%22%3A%22u1965ff7c%22%2C%22level%22%3A1%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5Bnull%5D%2C%22index%22%3A1%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u6cbdea50%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E8%BE%93%E5%87%BA%E5%8E%9F%E5%A7%8B%E5%88%86%E8%BE%A8%E7%8E%87%EF%BC%88%E5%A6%821080x2340%EF%BC%89%E5%92%8C%E6%96%87%E4%BB%B6%E5%A4%A7%E5%B0%8F%EF%BC%88%E5%A6%82800KB%EF%BC%89%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u5451ae5b%22%2C%22name%22%3A%22oli%22%2C%22attrs%22%3A%7B%22list%22%3A%22uf3c1f244%22%2C%22fid%22%3A%22u395cb405%22%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5B%5D%2C%22index%22%3A1%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u61fe4551%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E6%89%A7%E8%A1%8C%E4%B8%A4%E7%A7%8D%E5%8E%8B%E7%BC%A9%EF%BC%9A%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u6491e39b%22%2C%22name%22%3A%22uli%22%2C%22attrs%22%3A%7B%22list%22%3A%22u9d49109d%22%2C%22fid%22%3A%22u8f25c5f2%22%2C%22level%22%3A1%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5Bnull%5D%2C%22index%22%3A0%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22ubdac4c14%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E5%88%86%E8%BE%A8%E7%8E%87%E5%8E%8B%E7%BC%A9%E5%88%B0640px%E5%AE%BD%E5%BA%A6%EF%BC%88%E7%94%9F%E6%88%90%2Fsdcard%2Fresized_640.jpg%EF%BC%89%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u7940904c%22%2C%22name%22%3A%22uli%22%2C%22attrs%22%3A%7B%22list%22%3A%22u9d49109d%22%2C%22fid%22%3A%22u8f25c5f2%22%2C%22level%22%3A1%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5Bnull%5D%2C%22index%22%3A1%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22ub914bf20%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E8%B4%A8%E9%87%8F%E5%8E%8B%E7%BC%A9%E5%88%B070%25%EF%BC%88%E7%94%9F%E6%88%90%2Fsdcard%2Fquality_70.jpg%EF%BC%89%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u28c3dab0%22%2C%22name%22%3A%22oli%22%2C%22attrs%22%3A%7B%22list%22%3A%22uf3c1f244%22%2C%22fid%22%3A%22u395cb405%22%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5B%5D%2C%22index%22%3A2%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22ud45173aa%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E5%8E%8B%E7%BC%A9%E7%BB%93%E6%9E%9C%E8%BE%93%E5%87%BA%EF%BC%9A%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u5c3393af%22%2C%22name%22%3A%22uli%22%2C%22attrs%22%3A%7B%22list%22%3A%22ued758be7%22%2C%22fid%22%3A%22uf491d290%22%2C%22level%22%3A1%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5Bnull%5D%2C%22index%22%3A0%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22ub2f6296a%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E6%98%BE%E7%A4%BA%E5%8E%8B%E7%BC%A9%E5%90%8E%E5%B0%BA%E5%AF%B8%EF%BC%88%E6%B3%A8%E6%84%8F%E6%AD%A4%E5%A4%84%E4%BB%A3%E7%A0%81%E5%AD%98%E5%9C%A8%E8%AE%A1%E7%AE%97%E9%94%99%E8%AF%AF%EF%BC%8C%E5%AE%9E%E9%99%85%E9%AB%98%E5%BA%A6%E5%BA%94%E4%B8%BA640*%E5%8E%9F%E5%9B%BE%E9%AB%98%E5%AE%BD%E6%AF%94%EF%BC%89%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u1ad27e2f%22%2C%22name%22%3A%22uli%22%2C%22attrs%22%3A%7B%22list%22%3A%22ued758be7%22%2C%22fid%22%3A%22uf491d290%22%2C%22level%22%3A1%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5Bnull%5D%2C%22index%22%3A1%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u4177365f%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E6%98%BE%E7%A4%BA%E5%8E%8B%E7%BC%A9%E5%90%8E%E6%96%87%E4%BB%B6%E5%A4%A7%E5%B0%8F%EF%BC%88%E5%8D%95%E4%BD%8DKB%EF%BC%89%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22uf002f696%22%2C%22name%22%3A%22p%22%2C%22attrs%22%3A%7B%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22ub2f613c0%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22-----%20%E4%BC%98%E5%8C%96%E7%BB%86%E8%8A%82%20-----%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u09cac46c%22%2C%22name%22%3A%22oli%22%2C%22attrs%22%3A%7B%22list%22%3A%22u1d7243e1%22%2C%22fid%22%3A%22u6dccf46c%22%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5B%5D%2C%22index%22%3A0%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u3ce0a563%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E8%B5%84%E6%BA%90%E7%AE%A1%E7%90%86%EF%BC%9A%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22uefb9e8e4%22%2C%22name%22%3A%22hole%22%2C%22attrs%22%3A%7B%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22card%22%2C%22id%22%3A%22bM389%22%2C%22name%22%3A%22codeblock%22%2C%22attrs%22%3A%7B%22value%22%3A%7B%22mode%22%3A%22javascript%22%2C%22code%22%3A%22srcMat.release()%3B%20%2F%2F%20%E9%87%8A%E6%94%BEOpenCV%E7%9F%A9%E9%98%B5%E5%86%85%E5%AD%98%5CnresultBitmap.recycle()%3B%20%2F%2F%20%E5%9B%9E%E6%94%B6Bitmap%E8%B5%84%E6%BA%90%22%2C%22autoWrap%22%3Afalse%2C%22lineNumbers%22%3Atrue%2C%22heightLimit%22%3Atrue%2C%22collapsed%22%3Afalse%2C%22hideToolbar%22%3Afalse%2C%22name%22%3A%22%22%2C%22tabSize%22%3Anull%2C%22indentWithTab%22%3Afalse%2C%22lightLines%22%3A%5B%5D%2C%22foldLines%22%3A%5B%5D%2C%22theme%22%3A%22Github%20Light%22%2C%22__spacing%22%3A%22both%22%7D%2C%22cardType%22%3A%22block%22%7D%2C%22cardType%22%3A%22block%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u54d3f2b5%22%2C%22name%22%3A%22p%22%2C%22attrs%22%3A%7B%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22ucb033499%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22color%22%3A%22white%22%2C%22bgColor%22%3A%22rgb(39%2C%2040%2C%2034)%22%2C%22fontsize%22%3A13%7D%2C%22data%22%3A%22%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u4b22bc9f%22%2C%22name%22%3A%22oli%22%2C%22attrs%22%3A%7B%22list%22%3A%22u1d7243e1%22%2C%22fid%22%3A%22u6dccf46c%22%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5B%5D%2C%22index%22%3A1%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u897ea9f8%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E9%94%99%E8%AF%AF%E5%A4%84%E7%90%86%EF%BC%9A%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u2c16eb02%22%2C%22name%22%3A%22uli%22%2C%22attrs%22%3A%7B%22list%22%3A%22u551f6b15%22%2C%22fid%22%3A%22uca4a1b3d%22%2C%22level%22%3A1%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5Bnull%5D%2C%22index%22%3A0%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u7296b2a2%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E4%BD%BF%E7%94%A8try-catch%E6%8D%95%E8%8E%B7%E5%BC%82%E5%B8%B8%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u45e0cd0e%22%2C%22name%22%3A%22uli%22%2C%22attrs%22%3A%7B%22list%22%3A%22u551f6b15%22%2C%22fid%22%3A%22uca4a1b3d%22%2C%22level%22%3A1%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5Bnull%5D%2C%22index%22%3A1%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22udca64ed0%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E6%88%AA%E5%9B%BE%E5%A4%B1%E8%B4%A5%E6%97%B6%E8%87%AA%E5%8A%A8%E9%80%80%E5%87%BA%E8%84%9A%E6%9C%AC%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u4c0c8c53%22%2C%22name%22%3A%22p%22%2C%22attrs%22%3A%7B%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u9aa9b620%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22-----%20%E6%BD%9C%E5%9C%A8%E9%97%AE%E9%A2%98%20-----%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22uc273bc17%22%2C%22name%22%3A%22oli%22%2C%22attrs%22%3A%7B%22list%22%3A%22u708198a8%22%2C%22fid%22%3A%22uc83e3c68%22%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5B%5D%2C%22index%22%3A0%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u0188b67a%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E5%B0%BA%E5%AF%B8%E8%AE%A1%E7%AE%97%E8%AF%AF%E5%B7%AE%EF%BC%9A%20%E5%BD%93%E5%89%8D%E4%BB%A3%E7%A0%81%E4%B8%AD%22%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22ud04309ae%22%2C%22name%22%3A%22code%22%2C%22attrs%22%3A%7B%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u044ddbf1%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22img.getWidth()*(640%2Fimg.getWidth())%22%7D%5D%7D%2C%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u24a8d90d%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E5%AE%9E%E9%99%85%E7%AD%89%E4%BA%8E640%EF%BC%8C%E9%AB%98%E5%BA%A6%E8%AE%A1%E7%AE%97%E6%9C%AA%E6%AD%A3%E7%A1%AE%E5%AE%9E%E7%8E%B0%EF%BC%8C%E5%BA%94%E6%94%B9%E4%B8%BA%EF%BC%9A%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u65bd295c%22%2C%22name%22%3A%22hole%22%2C%22attrs%22%3A%7B%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22card%22%2C%22id%22%3A%22Dlalk%22%2C%22name%22%3A%22codeblock%22%2C%22attrs%22%3A%7B%22value%22%3A%7B%22mode%22%3A%22javascript%22%2C%22code%22%3A%22%5C%22%E5%8E%8B%E7%BC%A9%E5%90%8E%E5%B0%BA%E5%AF%B8%EF%BC%9A%5C%22%20%2B%20targetWidth%20%2B%20%5C%22x%5C%22%20%2B%20targetHeight%22%2C%22autoWrap%22%3Afalse%2C%22lineNumbers%22%3Atrue%2C%22heightLimit%22%3Atrue%2C%22collapsed%22%3Afalse%2C%22hideToolbar%22%3Afalse%2C%22name%22%3A%22%22%2C%22tabSize%22%3Anull%2C%22indentWithTab%22%3Afalse%2C%22lightLines%22%3A%5B%5D%2C%22foldLines%22%3A%5B%5D%2C%22theme%22%3A%22Github%20Light%22%2C%22__spacing%22%3A%22both%22%7D%2C%22cardType%22%3A%22block%22%7D%2C%22cardType%22%3A%22block%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22uf61f1e13%22%2C%22name%22%3A%22p%22%2C%22attrs%22%3A%7B%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u7dc9a23a%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22color%22%3A%22white%22%2C%22bgColor%22%3A%22rgb(39%2C%2040%2C%2034)%22%2C%22fontsize%22%3A13%7D%2C%22data%22%3A%22%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u0b277a3d%22%2C%22name%22%3A%22oli%22%2C%22attrs%22%3A%7B%22list%22%3A%22u708198a8%22%2C%22fid%22%3A%22uc83e3c68%22%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5B%5D%2C%22index%22%3A1%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u1dc26050%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22OpenCV%E5%88%9D%E5%A7%8B%E5%8C%96%EF%BC%9A%20%E5%AE%9E%E9%99%85%E4%BD%BF%E7%94%A8%E4%B8%AD%E5%8F%AF%E8%83%BD%E9%9C%80%E8%A6%81%E5%85%88%E5%88%9D%E5%A7%8B%E5%8C%96OpenCV%E5%BA%93%EF%BC%9A%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u4622394a%22%2C%22name%22%3A%22hole%22%2C%22attrs%22%3A%7B%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22card%22%2C%22id%22%3A%22OCqC6%22%2C%22name%22%3A%22codeblock%22%2C%22attrs%22%3A%7B%22value%22%3A%7B%22mode%22%3A%22javascript%22%2C%22code%22%3A%22if%20(!org.opencv.android.OpenCVLoader.initDebug())%20%7B%5Cn%20%20%20%20printl(%5C%22OpenCV%E5%88%9D%E5%A7%8B%E5%8C%96%E5%A4%B1%E8%B4%A5%5C%22)%3B%5Cn%7D%22%2C%22autoWrap%22%3Afalse%2C%22lineNumbers%22%3Atrue%2C%22heightLimit%22%3Atrue%2C%22collapsed%22%3Afalse%2C%22hideToolbar%22%3Afalse%2C%22name%22%3A%22%22%2C%22tabSize%22%3Anull%2C%22indentWithTab%22%3Afalse%2C%22lightLines%22%3A%5B%5D%2C%22foldLines%22%3A%5B%5D%2C%22theme%22%3A%22Github%20Light%22%2C%22__spacing%22%3A%22both%22%7D%2C%22cardType%22%3A%22block%22%7D%2C%22cardType%22%3A%22block%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22uf1a6457c%22%2C%22name%22%3A%22p%22%2C%22attrs%22%3A%7B%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u672e889e%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22color%22%3A%22white%22%2C%22bgColor%22%3A%22rgb(39%2C%2040%2C%2034)%22%2C%22fontsize%22%3A13%7D%2C%22data%22%3A%22%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u594c5cd7%22%2C%22name%22%3A%22oli%22%2C%22attrs%22%3A%7B%22list%22%3A%22u708198a8%22%2C%22fid%22%3A%22uc83e3c68%22%2C%22indexStyle%22%3A%7B%7D%2C%22indexType%22%3A0%2C%22parentIndex%22%3A%5B%5D%2C%22index%22%3A2%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u32ce1f8a%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E8%B7%AF%E5%BE%84%E5%85%BC%E5%AE%B9%E6%80%A7%EF%BC%9A%20%E7%A1%AC%E7%BC%96%E7%A0%81%E8%B7%AF%E5%BE%84%EF%BC%88%2Fsdcard%2F%EF%BC%89%E5%8F%AF%E8%83%BD%E4%B8%8D%E9%80%82%E7%94%A8%E4%BA%8E%E6%96%B0%E7%89%88%E6%9C%ACAndroid%EF%BC%8C%E5%BB%BA%E8%AE%AE%E6%94%B9%E7%94%A8%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%EF%BC%9A%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u491830f7%22%2C%22name%22%3A%22hole%22%2C%22attrs%22%3A%7B%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22card%22%2C%22id%22%3A%22vJVq1%22%2C%22name%22%3A%22codeblock%22%2C%22attrs%22%3A%7B%22value%22%3A%7B%22mode%22%3A%22javascript%22%2C%22code%22%3A%22var%20externalDir%20%3D%20context.getExternalFilesDir(null).getAbsolutePath()%3B%22%2C%22autoWrap%22%3Afalse%2C%22lineNumbers%22%3Atrue%2C%22heightLimit%22%3Atrue%2C%22collapsed%22%3Afalse%2C%22hideToolbar%22%3Afalse%2C%22name%22%3A%22%22%2C%22tabSize%22%3Anull%2C%22indentWithTab%22%3Afalse%2C%22lightLines%22%3A%5B%5D%2C%22foldLines%22%3A%5B%5D%2C%22theme%22%3A%22Github%20Light%22%2C%22__spacing%22%3A%22both%22%7D%2C%22cardType%22%3A%22block%22%7D%2C%22cardType%22%3A%22block%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22ue07155aa%22%2C%22name%22%3A%22p%22%2C%22attrs%22%3A%7B%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u292c0674%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22color%22%3A%22white%22%2C%22bgColor%22%3A%22rgb(39%2C%2040%2C%2034)%22%2C%22fontsize%22%3A13%7D%2C%22data%22%3A%22%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u533b3686%22%2C%22name%22%3A%22p%22%2C%22attrs%22%3A%7B%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u115456fa%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E8%BF%99%E4%B8%AA%E8%84%9A%E6%9C%AC%E9%80%82%E7%94%A8%E4%BA%8E%E9%9C%80%E8%A6%81%E8%87%AA%E5%8A%A8%E5%8C%96%E5%A4%84%E7%90%86%E6%89%8B%E6%9C%BA%E6%88%AA%E5%9B%BE%E7%9A%84%E5%9C%BA%E6%99%AF%EF%BC%88%E5%A6%82APP%E6%B5%8B%E8%AF%95%E6%88%AA%E5%9B%BE%E4%B8%8A%E4%BC%A0%EF%BC%89%EF%BC%8C%E9%80%9A%E8%BF%87%E4%B8%A4%E7%A7%8D%E5%8E%8B%E7%BC%A9%E6%96%B9%E5%BC%8F%E7%9A%84%E7%BB%84%E5%90%88%E4%BD%BF%E7%94%A8%EF%BC%8C%E5%8F%AF%E4%BB%A5%E5%9C%A8%E6%B8%85%E6%99%B0%E5%BA%A6%E5%92%8C%E6%96%87%E4%BB%B6%E5%A4%A7%E5%B0%8F%E4%B9%8B%E9%97%B4%E5%8F%96%E5%BE%97%E5%B9%B3%E8%A1%A1%E3%80%82%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22uef8e733e%22%2C%22name%22%3A%22p%22%2C%22attrs%22%3A%7B%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22uac0ed477%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%20%22%7D%2C%7B%22type%22%3A%22text%22%2C%22id%22%3A%22uc661102a%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22fontsize%22%3A32%7D%2C%22data%22%3A%22%E5%8F%A6%E5%A4%96%EF%BC%9A%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u677fb456%22%2C%22name%22%3A%22p%22%2C%22attrs%22%3A%7B%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22uc52a7052%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22fontsize%22%3A32%7D%2C%22data%22%3A%22%E6%9C%89%E7%9A%84%E8%A6%81%E5%8F%96%E6%89%8B%E6%9C%BA%E7%82%B9%E5%87%BB%E6%88%96%E6%98%AF%E6%8B%96%E5%8A%A8%E9%AA%8C%E8%AF%81%E7%A0%81%E7%9A%84%EF%BC%8C%E5%B0%B1%E7%89%B9%E5%88%AB%E7%AE%80%E5%8D%95%E4%BA%86%EF%BC%8C%E7%94%A8%E8%BD%AF%E4%BB%B6%E7%9A%84%E5%89%AA%E5%88%87%E5%9B%BE%E7%89%87%E5%8A%9F%E8%83%BD%E3%80%82%22%7D%2C%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u5ab1620e%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22fontsize%22%3A24%7D%2C%22data%22%3A%22%E6%9C%89%E7%9A%84%E5%AE%A2%E6%88%B7%E6%83%B3%E5%AE%9E%E7%8E%B0%E6%8A%8A%E6%88%AA%E7%9A%84%E5%9B%BE%E7%89%87%E5%88%86%E8%BE%A8%E7%8E%87%E6%98%AF%20720*345%EF%BC%8C%E5%8F%98%E6%88%90378*314%20%20%EF%BC%8C%E5%AE%9E%E9%99%85%E5%B0%B1%E6%98%AF%E8%A3%81%E5%89%AA%E9%AA%8C%E8%AF%81%E7%A0%81%E5%9B%BE%E7%89%87%E7%9A%84%E6%84%8F%E6%80%9D%E3%80%82%22%7D%5D%7D%5D%2C%22attrs%22%3A%7B%7D%7D" source="https%3A%2F%2Fwww.yuque.com%2Faiwork%2Fnba2pr%2Fyodz2gge7xgan6fl"></ne-clipboard><div class="lake-content" typography="classic"><div class="blockcode"><blockquote>// 导入必要的Android和OpenCV类<br>importClass(android.graphics.Bitmap);<br>importClass(java.io.File);<br>importClass(org.opencv.core.Core);<br>importClass(org.opencv.core.Mat);<br>importClass(org.opencv.core.Size);<br>importClass(org.opencv.imgproc.Imgproc);<br><br>// 全屏截图<br>var img = screen.screenShotFull();<br>if (img.isNull()) {<br>    printl("截图失败");<br>    exit();<br>}<br><br>// 原始图片信息<br>var originalPath = "/sdcard/original.jpg";<br>img.save(originalPath);<br>printl("原始图片尺寸:" + img.getWidth() + "x" + img.getHeight());<br>printl("原始文件大小:" + (new File(originalPath).length()/1024).toFixed(2) + "KB");<br><br>// 方法1:调整分辨率压缩<br>function resizeCompress(imageObj, targetWidth) {<br>    try {<br>      var ratio = imageObj.getHeight() / imageObj.getWidth();<br>      var targetHeight = Math.round(targetWidth * ratio);<br>      <br>      var srcMat = imageObj.getMat().clone();<br>      var dstMat = new Mat();<br>      <br>      // 使用更高效的插值算法<br>      Imgproc.resize(srcMat, dstMat, <br>            new Size(targetWidth, targetHeight), <br>            0, 0, Imgproc.INTER_AREA);<br>      <br>      // 转换回Bitmap<br>      var resultBitmap = Bitmap.createBitmap(<br>            dstMat.cols(), <br>            dstMat.rows(), <br>            Bitmap.Config.RGB_565// 使用更省内存的配置<br>      );<br>      org.opencv.android.Utils.matToBitmap(dstMat, resultBitmap);<br>      <br>      // 保存文件<br>      var outputPath = "/sdcard/resized_" + targetWidth + ".jpg";<br>      var fos = new java.io.FileOutputStream(outputPath);<br>      resultBitmap.compress(Bitmap.CompressFormat.JPEG, 85, fos);<br>      fos.close();<br>      <br>      // 资源回收<br>      srcMat.release();<br>      dstMat.release();<br>      resultBitmap.recycle();<br>      <br>      return outputPath;<br>    } catch(e) {<br>      printl("压缩出错:" + e.message);<br>      return null;<br>    }<br>}<br><br>// 方法2:质量压缩<br>function qualityCompress(imageObj, quality) {<br>    try {<br>      var outputPath = "/sdcard/quality_" + quality + ".jpg";<br>      var bitmap = imageObj.getBitmap();<br>      var fos = new java.io.FileOutputStream(outputPath);<br>      bitmap.compress(Bitmap.CompressFormat.JPEG, quality, fos);<br>      fos.close();<br>      bitmap.recycle();<br>      return outputPath;<br>    } catch(e) {<br>      printl("质量压缩失败:" + e.message);<br>      return null;<br>    }<br>}<br><br>// 执行压缩<br>var resizedPath = resizeCompress(img, 640);<br>var qualityPath = qualityCompress(img, 70);<br><br>// 显示压缩结果<br>function showCompressInfo(path) {<br>    if (!path) return;<br>    var file = new File(path);<br>    if (file.exists()) {<br>      printl("压缩文件:" + path);<br>      printl("压缩后尺寸:" + <br>            img.getWidth()*(640/img.getWidth()) + "x" + <br>            img.getHeight()*(640/img.getWidth()));<br>      printl("压缩后大小:" + (file.length()/1024).toFixed(2) + "KB");<br>    }<br>}<br><br>showCompressInfo(resizedPath);<br>showCompressInfo(qualityPath);<br><br>// 资源回收<br>img.recycle();<br></blockquote></div><p id="uf81a71d8" class="ne-p" style="min-height: 24px;"><span class="ne-text"><br></span></p><p id="uf81a71d8" class="ne-p" style="min-height: 24px;"><span class="ne-text"><br></span></p><p id="uf81a71d8" class="ne-p" style="min-height: 24px;"><span class="ne-text">主要包含两种压缩方式:分辨率压缩和质量压缩。以下是代码的详细解释:</span></p><p id="u20fbf403" class="ne-p" style="min-height: 24px;"><span class="ne-text">----- 基础准备 -----</span></p><ol class="ne-ol" style="padding-left: 23px;"><li id="u3a840587" data-lake-index-type="0"><span class="ne-text">类库导入:</span></li></ol><ul class="ne-list-wrap" style="padding-left: 23px; list-style: none;"><ul ne-level="1" class="ne-ul" style="padding-left: 23px; list-style-position: initial; list-style-image: initial;"><li id="ubb524246" data-lake-index-type="0"><span class="ne-text">导入Android图形类(Bitmap)、文件操作类</span></li><li id="uc4d65b6e" data-lake-index-type="0"><span class="ne-text">导入OpenCV核心库和图像处理类</span></li><li id="ud867e4bb" data-lake-index-type="0"><span class="ne-text">使用屏幕截图需要Auto.js的screen对象</span></li></ul></ul><ol start="2" class="ne-ol" style="padding-left: 23px;"><li id="u19e4c1d6" data-lake-index-type="0"><span class="ne-text">全屏截图:</span></li></ol><pre data-language="javascript" id="SOhCh" class="ne-codeblock language-javascript" style="border: 1px solid #e8e8e8; border-radius: 2px; background: #f9f9f9; padding: 16px; font-size: 13px; color: #595959"><code>var img = screen.screenShotFull(); // 获取全屏截图
img.save(originalPath); // 保存原始图片</code></pre><p id="u97cccebe" class="ne-p" style="min-height: 24px;"><span class="ne-text" style="color: white; background-color: rgb(39, 40, 34); font-size: 13px"></span></p><p id="u26b26b1e" class="ne-p" style="min-height: 24px;"><span class="ne-text">----- 核心方法 -----</span></p><ol class="ne-ol" style="padding-left: 23px;"><li id="ua5dd340b" data-lake-index-type="0"><span class="ne-text">分辨率压缩方法(resizeCompress):</span></li></ol><ul class="ne-list-wrap" style="padding-left: 23px; list-style: none;"><ul ne-level="1" class="ne-ul" style="padding-left: 23px; list-style-position: initial; list-style-image: initial;"><li id="u8c97d323" data-lake-index-type="0"><span class="ne-text">按比例缩小尺寸:保持宽高比计算目标高度</span></li><li id="u4058c342" data-lake-index-type="0"><span class="ne-text">使用OpenCV的INTER_AREA算法(适合缩小图像的插值算法)</span></li><li id="u99128dcc" data-lake-index-type="0"><span class="ne-text">转换Bitmap时使用RGB_565配置(比默认ARGB_8888节省50%内存)</span></li><li id="ufbb2e8eb" data-lake-index-type="0"><span class="ne-text">保存质量为85的JPEG文件</span></li></ul></ul><ol start="2" class="ne-ol" style="padding-left: 23px;"><li id="u91a4461d" data-lake-index-type="0"><span class="ne-text">质量压缩方法(qualityCompress):</span></li></ol><ul class="ne-list-wrap" style="padding-left: 23px; list-style: none;"><ul ne-level="1" class="ne-ul" style="padding-left: 23px; list-style-position: initial; list-style-image: initial;"><li id="uebb13d5d" data-lake-index-type="0"><span class="ne-text">直接调整JPEG压缩质量(0-100范围,值越小压缩比越高)</span></li><li id="ucbee2cdc" data-lake-index-type="0"><span class="ne-text">不改变图片尺寸,仅降低文件质量</span></li></ul></ul><p id="u5a47757d" class="ne-p" style="min-height: 24px;"><span class="ne-text">----- 执行流程 -----</span></p><ol class="ne-ol" style="padding-left: 23px;"><li id="ua7f2ee1c" data-lake-index-type="0"><span class="ne-text">原始截图保存</span></li></ol><ul class="ne-list-wrap" style="padding-left: 23px; list-style: none;"><ul ne-level="1" class="ne-ul" style="padding-left: 23px; list-style-position: initial; list-style-image: initial;"><li id="u9901d552" data-lake-index-type="0"><span class="ne-text">存储路径:/sdcard/original.jpg</span></li><li id="u4c71d2bd" data-lake-index-type="0"><span class="ne-text">输出原始分辨率(如1080x2340)和文件大小(如800KB)</span></li></ul></ul><ol start="2" class="ne-ol" style="padding-left: 23px;"><li id="u5451ae5b" data-lake-index-type="0"><span class="ne-text">执行两种压缩:</span></li></ol><ul class="ne-list-wrap" style="padding-left: 23px; list-style: none;"><ul ne-level="1" class="ne-ul" style="padding-left: 23px; list-style-position: initial; list-style-image: initial;"><li id="u6491e39b" data-lake-index-type="0"><span class="ne-text">分辨率压缩到640px宽度(生成/sdcard/resized_640.jpg)</span></li><li id="u7940904c" data-lake-index-type="0"><span class="ne-text">质量压缩到70%(生成/sdcard/quality_70.jpg)</span></li></ul></ul><ol start="3" class="ne-ol" style="padding-left: 23px;"><li id="u28c3dab0" data-lake-index-type="0"><span class="ne-text">压缩结果输出:</span></li></ol><ul class="ne-list-wrap" style="padding-left: 23px; list-style: none;"><ul ne-level="1" class="ne-ul" style="padding-left: 23px; list-style-position: initial; list-style-image: initial;"><li id="u5c3393af" data-lake-index-type="0"><span class="ne-text">显示压缩后尺寸(注意此处代码存在计算错误,实际高度应为640*原图高宽比)</span></li><li id="u1ad27e2f" data-lake-index-type="0"><span class="ne-text">显示压缩后文件大小(单位KB)</span></li></ul></ul><p id="uf002f696" class="ne-p" style="min-height: 24px;"><span class="ne-text">----- 优化细节 -----</span></p><ol class="ne-ol" style="padding-left: 23px;"><li id="u09cac46c" data-lake-index-type="0"><span class="ne-text">资源管理:</span></li></ol><pre data-language="javascript" id="bM389" class="ne-codeblock language-javascript" style="border: 1px solid #e8e8e8; border-radius: 2px; background: #f9f9f9; padding: 16px; font-size: 13px; color: #595959"><code>srcMat.release(); // 释放OpenCV矩阵内存
resultBitmap.recycle(); // 回收Bitmap资源</code></pre><p id="u54d3f2b5" class="ne-p" style="min-height: 24px;"><span class="ne-text" style="color: white; background-color: rgb(39, 40, 34); font-size: 13px"></span></p><ol start="2" class="ne-ol" style="padding-left: 23px;"><li id="u4b22bc9f" data-lake-index-type="0"><span class="ne-text">错误处理:</span></li></ol><ul class="ne-list-wrap" style="padding-left: 23px; list-style: none;"><ul ne-level="1" class="ne-ul" style="padding-left: 23px; list-style-position: initial; list-style-image: initial;"><li id="u2c16eb02" data-lake-index-type="0"><span class="ne-text">使用try-catch捕获异常</span></li><li id="u45e0cd0e" data-lake-index-type="0"><span class="ne-text">截图失败时自动退出脚本</span></li></ul></ul><p id="u4c0c8c53" class="ne-p" style="min-height: 24px;"><span class="ne-text">----- 潜在问题 -----</span></p><ol class="ne-ol" style="padding-left: 23px;"><li id="uc273bc17" data-lake-index-type="0"><span class="ne-text">尺寸计算误差: 当前代码中</span><code class="ne-code" style="font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace; background-color: rgba(0, 0, 0, 0.06); border: 1px solid rgba(0, 0, 0, 0.08); border-radius: 2px; padding-right: 2px; padding-left: 2px;"><span class="ne-text">img.getWidth()*(640/img.getWidth())</span></code><span class="ne-text">实际等于640,高度计算未正确实现,应改为:</span></li></ol><pre data-language="javascript" id="Dlalk" class="ne-codeblock language-javascript" style="border: 1px solid #e8e8e8; border-radius: 2px; background: #f9f9f9; padding: 16px; font-size: 13px; color: #595959"><code>"压缩后尺寸:" + targetWidth + "x" + targetHeight</code></pre><p id="uf61f1e13" class="ne-p" style="min-height: 24px;"><span class="ne-text" style="color: white; background-color: rgb(39, 40, 34); font-size: 13px"></span></p><ol start="2" class="ne-ol" style="padding-left: 23px;"><li id="u0b277a3d" data-lake-index-type="0"><span class="ne-text">OpenCV初始化: 实际使用中可能需要先初始化OpenCV库:</span></li></ol><pre data-language="javascript" id="OCqC6" class="ne-codeblock language-javascript" style="border: 1px solid #e8e8e8; border-radius: 2px; background: #f9f9f9; padding: 16px; font-size: 13px; color: #595959"><code>if (!org.opencv.android.OpenCVLoader.initDebug()) {
    printl("OpenCV初始化失败");
}</code></pre><p id="uf1a6457c" class="ne-p" style="min-height: 24px;"><span class="ne-text" style="color: white; background-color: rgb(39, 40, 34); font-size: 13px"></span></p><ol start="3" class="ne-ol" style="padding-left: 23px;"><li id="u594c5cd7" data-lake-index-type="0"><span class="ne-text">路径兼容性: 硬编码路径(/sdcard/)可能不适用于新版本Android,建议改用环境变量:</span></li></ol><pre data-language="javascript" id="vJVq1" class="ne-codeblock language-javascript" style="border: 1px solid #e8e8e8; border-radius: 2px; background: #f9f9f9; padding: 16px; font-size: 13px; color: #595959"><code>var externalDir = context.getExternalFilesDir(null).getAbsolutePath();</code></pre><p id="ue07155aa" class="ne-p" style="min-height: 24px;"><span class="ne-text" style="color: white; background-color: rgb(39, 40, 34); font-size: 13px"></span></p><p id="u533b3686" class="ne-p" style="min-height: 24px;"><span class="ne-text">这个脚本适用于需要自动化处理手机截图的场景(如APP测试截图上传),通过两种压缩方式的组合使用,可以在清晰度和文件大小之间取得平衡。</span></p><p id="uef8e733e" class="ne-p" style="min-height: 24px;"><span class="ne-text"> </span><span class="ne-text" style="font-size: 32px">另外:</span></p><p id="uef8e733e" class="ne-p" style="min-height: 24px;"><span class="ne-text" style="font-size: 32px"><br></span></p><p id="u677fb456" class="ne-p" style="min-height: 24px;"><span class="ne-text" style="font-size: 32px">有的要取手机点击或是拖动验证码的,就特别简单了,用软件的剪切图片功能。</span><span class="ne-text" style="font-size: 24px">有的客户想实现把截的图片分辨率是 720*345,变成378*314,实际就是裁剪验证码图片的意思。</span></p><p id="u677fb456" class="ne-p" style="min-height: 24px;"><span class="ne-text" style="font-size: 24px"></span></p><p id="u677fb456" class="ne-p" style="min-height: 24px;"><span class="ne-text" style="font-size: 24px"><ne-clipboard data="%7B%22type%22%3A%22fragment%22%2C%22name%22%3A%22%23fragment%22%2C%22children%22%3A%5B%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u2420188a%22%2C%22name%22%3A%22p%22%2C%22attrs%22%3A%7B%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22uac7db960%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%7D%2C%22data%22%3A%22%E5%85%A8%E5%B1%8F%E6%88%AA%E5%9B%BE%EF%BC%8C%E7%84%B6%E5%90%8E%E6%8A%8A%E9%AA%8C%E8%AF%81%E7%A0%81%E8%A3%81%E5%89%AA%E6%88%AA%E5%9B%BE%E5%87%BA%E6%9D%A5%22%7D%5D%7D%5D%2C%22attrs%22%3A%7B%7D%7D" source="https%3A%2F%2Fwww.yuque.com%2Faiwork%2Fnba2pr%2Fyodz2gge7xgan6fl"></ne-clipboard></span></p><div class="lake-content" typography="classic"><p id="u2420188a" class="ne-p" style="min-height: 24px;"><span class="ne-text">全屏截图,然后把验证码裁剪截图出来</span></p></div><p id="u677fb456" class="ne-p" style="min-height: 24px;"><span class="ne-text" style="font-size: 24px"><br></span></p><p id="u677fb456" class="ne-p" style="min-height: 24px;"><span class="ne-text" style="font-size: 24px"></span></p><div class="blockcode"><blockquote>var img = screen.screenShotFull();<br><br>var url = img.cutImagePercent(0, 0.2, 1, 0.62);<br>printl(url);</blockquote></div><p id="u677fb456" class="ne-p" style="min-height: 24px;"><span class="ne-text" style="font-size: 24px"><br></span></p><p id="u677fb456" class="ne-p" style="min-height: 24px;"><span class="ne-text" style="font-size: 24px"><br></span></p></div><p></p>
页: [1]
查看完整版本: AiWROK软件里的OpenCV图片分辨率压缩和质量压缩