注册 登录
发贴工具
查看: 81|回复: 0
打印 上一主题 下一主题

[24小时收录超级好的网站] AiWROK软件里的OpenCV图片分辨率压缩和质量压缩

[复制链接]

2240

主题

2288

帖子

1万

积分

积分
13644
跳转到指定楼层
楼主
http://bbs.niubt.cn/static/image/common/codebg.gif"); color: rgb(102, 102, 102); zoom: 1; border-color: rgb(236, 234, 234); font-family: Tahoma, "Microsoft Yahei", Simsun;">
// 导入必要的Android和OpenCV类
importClass(android.graphics.Bitmap);
importClass(java.io.File);
importClass(org.opencv.core.Core);
importClass(org.opencv.core.Mat);
importClass(org.opencv.core.Size);
importClass(org.opencv.imgproc.Imgproc);

// 全屏截图
var img = screen.screenShotFull();
if (img.isNull()) {
printl("截图失败");
exit();
}

// 原始图片信息
var originalPath = "/sdcard/original.jpg";
img.save(originalPath);
printl("原始图片尺寸:" + img.getWidth() + "x" + img.getHeight());
printl("原始文件大小:" + (new File(originalPath).length()/1024).toFixed(2) + "KB");

// 方法1:调整分辨率压缩
function resizeCompress(imageObj, targetWidth) {
try {
var ratio = imageObj.getHeight() / imageObj.getWidth();
var targetHeight = Math.round(targetWidth * ratio);

var srcMat = imageObj.getMat().clone();
var dstMat = new Mat();

// 使用更高效的插值算法
Imgproc.resize(srcMat, dstMat,
new Size(targetWidth, targetHeight),
0, 0, Imgproc.INTER_AREA);

// 转换回Bitmap
var resultBitmap = Bitmap.createBitmap(
dstMat.cols(),
dstMat.rows(),
Bitmap.Config.RGB_565 // 使用更省内存的配置
);
org.opencv.android.Utils.matToBitmap(dstMat, resultBitmap);

// 保存文件
var outputPath = "/sdcard/resized_" + targetWidth + ".jpg";
var fos = new java.io.FileOutputStream(outputPath);
resultBitmap.compress(Bitmap.CompressFormat.JPEG, 85, fos);
fos.close();

// 资源回收
srcMat.release();
dstMat.release();
resultBitmap.recycle();

return outputPath;
} catch(e) {
printl("压缩出错:" + e.message);
return null;
}
}

// 方法2:质量压缩
function qualityCompress(imageObj, quality) {
try {
var outputPath = "/sdcard/quality_" + quality + ".jpg";
var bitmap = imageObj.getBitmap();
var fos = new java.io.FileOutputStream(outputPath);
bitmap.compress(Bitmap.CompressFormat.JPEG, quality, fos);
fos.close();
bitmap.recycle();
return outputPath;
} catch(e) {
printl("质量压缩失败:" + e.message);
return null;
}
}

// 执行压缩
var resizedPath = resizeCompress(img, 640);
var qualityPath = qualityCompress(img, 70);

// 显示压缩结果
function showCompressInfo(path) {
if (!path) return;
var file = new File(path);
if (file.exists()) {
printl("压缩文件:" + path);
printl("压缩后尺寸:" +
img.getWidth()*(640/img.getWidth()) + "x" +
img.getHeight()*(640/img.getWidth()));
printl("压缩后大小:" + (file.length()/1024).toFixed(2) + "KB");
}
}

showCompressInfo(resizedPath);
showCompressInfo(qualityPath);

// 资源回收
img.recycle();



主要包含两种压缩方式:分辨率压缩和质量压缩。以下是代码的详细解释:

----- 基础准备 -----

  1. 类库导入:
    • 导入Android图形类(Bitmap)、文件操作类
    • 导入OpenCV核心库和图像处理类
    • 使用屏幕截图需要Auto.js的screen对象
  1. 全屏截图:
var img = screen.screenShotFull(); // 获取全屏截图
img.save(originalPath); // 保存原始图片

----- 核心方法 -----

  1. 分辨率压缩方法(resizeCompress):
    • 按比例缩小尺寸:保持宽高比计算目标高度
    • 使用OpenCV的INTER_AREA算法(适合缩小图像的插值算法)
    • 转换Bitmap时使用RGB_565配置(比默认ARGB_8888节省50%内存)
    • 保存质量为85的JPEG文件
  1. 质量压缩方法(qualityCompress):
    • 直接调整JPEG压缩质量(0-100范围,值越小压缩比越高)
    • 不改变图片尺寸,仅降低文件质量

----- 执行流程 -----

  1. 原始截图保存
    • 存储路径:/sdcard/original.jpg
    • 输出原始分辨率(如1080x2340)和文件大小(如800KB)
  1. 执行两种压缩:
    • 分辨率压缩到640px宽度(生成/sdcard/resized_640.jpg)
    • 质量压缩到70%(生成/sdcard/quality_70.jpg)
  1. 压缩结果输出:
    • 显示压缩后尺寸(注意此处代码存在计算错误,实际高度应为640*原图高宽比)
    • 显示压缩后文件大小(单位KB)

----- 优化细节 -----

  1. 资源管理:
srcMat.release(); // 释放OpenCV矩阵内存
resultBitmap.recycle(); // 回收Bitmap资源

  1. 错误处理:
    • 使用try-catch捕获异常
    • 截图失败时自动退出脚本

----- 潜在问题 -----

  1. 尺寸计算误差: 当前代码中img.getWidth()*(640/img.getWidth())实际等于640,高度计算未正确实现,应改为:
"压缩后尺寸:" + targetWidth + "x" + targetHeight

  1. OpenCV初始化: 实际使用中可能需要先初始化OpenCV库:
if (!org.opencv.android.OpenCVLoader.initDebug()) {
    printl("OpenCV初始化失败");
}

  1. 路径兼容性: 硬编码路径(/sdcard/)可能不适用于新版本Android,建议改用环境变量:
var externalDir = context.getExternalFilesDir(null).getAbsolutePath();

这个脚本适用于需要自动化处理手机截图的场景(如APP测试截图上传),通过两种压缩方式的组合使用,可以在清晰度和文件大小之间取得平衡。

另外:


有的要取手机点击或是拖动验证码的,就特别简单了,用软件的剪切图片功能。有的客户想实现把截的图片分辨率是 720*345,变成378*314 ,实际就是裁剪验证码图片的意思。

AiWROK软件里的OpenCV图片分辨率压缩和质量压缩 群发软件发帖工具

全屏截图,然后把验证码裁剪截图出来


AiWROK软件里的OpenCV图片分辨率压缩和质量压缩 群发软件发帖工具

http://bbs.niubt.cn/static/image/common/codebg.gif"); color: rgb(102, 102, 102); zoom: 1; border-color: rgb(236, 234, 234); font-family: Tahoma, "Microsoft Yahei", Simsun;">
var img = screen.screenShotFull();

var url = img.cutImagePercent(0, 0.2, 1, 0.62);
printl(url);


untoAIWROK软件原生Activity与H5页面交互实现及代码解析nextnocontent
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关导读了
    采集亚马逊正版群发工具有没有?
    Apr.20旅行X心语今天来说说YYPOST新功能的一个灵活用法,采集亚马逊商品信息,并且获得排名的软件,亚马逊现在越来越多客户做,淘宝的水是越来越清了,以前做电商的客户,现在都转战到外国,最赚钱的要数一些客户往亚马逊里堆了吧,拿我这个YYPOST的客户,最多的是采集,分析排名,刷价格,刷数量,改价,刷访问量等等技术

    企业发展B2B网站有什么东东软件可以发呢
    标题企业发展网B2B软件,现在虽然B2B网站收录不错,可愁的是心急的人们,他们太想一口吃撑胖子了,发帖宣传虽然不能像佛系那样淡定,但也不能像跑火车那般急躁对待,自己内容不收录,完全是自己操作内容问题,可以参考一下别人的内容是怎么弄的,然后自己要试着转变,而且收录这个内容,常常会变化的,不是一种规则就吃到老

    搜房天下房聊软件哪一个好呢
    本帖最后由 发帖软件 于 2019-5-22 16:15 编辑 2搜房天下群发房聊信息软件,开始本来打算做58同城的,但发一个就要一次点触验证码,这就让人没有感觉到存在的价值了吧,都是卖二手房和新房的搜房天下倒是可以发即时聊天信息,也没有发现他这个网站有啥子限制,登陆一个搜房天下账号,然后采集回来分类列表的网址,然后就一

    大家坛有没有好用的群发工具下载呢
    当你的笑容给我礼貌的招呼,大家坛全自动发帖软件,宣传推广是一场持久战,总是有一些人把软件用了一天,或是几个小时,就觉得自己付出太多了,那加进来的粉丝,或是流量,应该是和宣传多少成正比的,其实没有这么便宜的事,就像很多阅读量超过一百万的视频,或是电影,真正会在屏幕打赏的人不会超过三千,真正大额打赏给主

    群发正版软件中国塑料网
    中国塑料网群发软件YYPOST脚本下载地址,这个网站会有一个很奇怪的问题就是你在首页登陆无半个验证码,但在登陆网址登陆就会有一个验证码,所以我们灵活一些,在首页登陆就不用输入验证码了哈。网站秒收录比较高,但发的都是五金和建筑行业,先前有很多人都是发土建工程的大公司操作的,现在这个网站专为那个行业诞生的吧。

    OpenStreetMap网站正版2019年发帖工具下载
    本帖最后由 发帖软件 于 2019-5-21 11:13 编辑 OpenStreetMap网站全自动群发,OpenStreetMapOpenStreetMap(简称OSM,中文是公开地图)是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图。有的人编辑地图然后等收录,有的人发日志等收录,我们这里也是利用地图日志做为宣传的目标,简单的脚本理

    搜房天下全自动收短信全自动识别验证码注册账号软件
    房天下自动注册机,这个脚本是前几天发房聊的脚本廷伸品种,这个脚本能做到自动注册账号,自动保存账号,自动发房聊的效果,不过今天我们主要说一说怎么注册账号写脚本吧,这个搜房天天下的账号,可以发提问,可以发房聊,发论坛,发博客,还有发个人中心页都是有秒收的效果的,这样就省去了去买号,去乱花钱的效果了吧,而

    企业邮箱安卓端有什么APP软件可以发的呢
    请输入标题企业邮箱安卓发发送邮箱脚本,这个脚本是利用企业邮箱进行群发的,全程是一种模拟手工操作的过程,所以封号是很少的,而且企业邮箱群发到普通QQ邮箱不容易进垃圾箱中的,所以这个脚本也是这样的原理,不过最好是利用一些多开器,登陆多点的QQ邮箱账号会比较流畅一些,然后用软件一个一个的切换APP进行群发邮件会

    头条留评论软件有没有好用的呢?
    今天整一个今日头条留言软件,对于留言YYPOST是优势是比较大的存在,因为他往往专注一些下拉定位的优点,像今日头条这样,还是需要一些特殊下拉定位的,因为他新闻有长有短,有图有视频的,所以综合起来定位是比较难的,如果用POST也不是很轻松可以破解他的加密参数。这个脚本也是有一个不好的地方就是换号会比较麻烦,您电

    单网页生成神器
    最近新技术,网页生成机占领了整个网络的半壁江山,效果很疯狂,虽然不知道能持续多久,作为开发软件的领头者,一直在找收录的方法,一直在努力创新着,一直被人模仿,却从没有被超越过,这个网页生成机,已经出来有一段时间了,一直没有拿出来分享,醉过醉过,它是利用的一些小小收录漏洞整的,您最好用一些老站域名,进行

关闭
快速回复 返回列表 返回顶部
本站自动发贴软件,是现在最流行的做脚本软件,这种发贴工具,不但发贴收录快,而且抢占好的先机,完全自由编辑,实现针对性群发模拟操作,软件可以顶贴,也可以发贴,可以兼容支持Discuz、PHPWind、Dvbbs三大主流论坛,有手机验证码收件,邮件收发的功能,支持验证码识别,注册问题识别,多线程任务,自动上传头像,自动激活注册邮件,兼容防注册插件,本站软件原创正版,更新效率最快的原创软件。 『网络推广软件』『自动发帖软件』『 自动发帖