开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2579|回复: 11
收起左侧

[求助] 求优化本人遍历JPG并处理尺寸后替换的代码,内部是问题详细描述

[复制链接]
结帖率:57% (4/7)
发表于 2015-7-20 22:09:05 | 显示全部楼层 |阅读模式   辽宁省沈阳市
100精币
本帖最后由 690089735 于 2015-7-20 22:12 编辑

前言,
由于工作需要,经常要批量处理大量的jpg图片,并分别压缩为横向图片800*600和纵向图片600*800的
然后,我想起来了丢弃多年的易语言(当年就是菜鸟一只)。
两天时间,把我能找到的与我相关的问题看了个遍,终于会了递归遍历和画板改图片,以及写到文件的操作。
测试时没有问题,也十分高效,完全可以替代自己原本的手动操作。


我采用递归的方式遍历指定的目录下的所有JPG。每取到一个,就调用一次我写好的图像处理的子程序。

图像处理的机制,是借助-------载入图片,画板.画图片,然后取图片,写到文件,再转JPG,最后卸载图片----实现的。
咋一看没什么问题。我测试时用了10个文件夹,30张图片,毫无问题,快捷高速。
但是,当我真正投入使用时,发现了巨大的问题!



问题!
真正投入使用时,需要处理5GB到15GB的数据量,1000到2000个文件夹,共1000到3000张图片,每张图片2000*3000左右。画板无法胜任。
按理说应该也没什么问题,但是内存占用急速飙升!!!越来越卡,最后已经到死机的程度。而且每项的处理速度都非常的慢(接近1秒左右)。


根据网络搜索和单独调试,我推断,问题可能是出在画板上!
首先,画板绘图效率低,利用其处理大分辨率的图像自然会慢。效率无法保证。
其次,为了界面的简洁和实用,画板是放置在窗口看不见的地方的,这就决定了其必须开启自动重画这一项(否则取出为黑),我的遍历命令,加上自动重画的剪贴板存取原理,使我的内存占用不断按百KB上涨,而且不退出程序无法自动释放,最终导致程序崩溃(内存不足!)。



我想求得的解决方案:

1.脱离画板绘图,快速处理JPG的压缩,只需要处理尺寸压缩大小即可。(网上的代码大多是画板绘图处理小图片或少量图片的,另外的极少部分,是纯英语代码)最好是字节集级别的操作。

2.帮我解决原始代码内存泄漏的真正原因




原代码打包如下:
附:如果您想调试,请使用大量嵌套文件夹的大尺寸的JPG图像(至少1000个文件夹,1000个2000*2000JPG,可使用复制来实现),否则程序会快速高效的运行完毕,让人以为没有任何问题。

批量图片压缩.zip (182.68 KB, 下载次数: 17)


求助知识:请将问题描述清楚,最好把你有问题的源码打包上传上来,这样更方便大家帮助你。
友情提醒:本版被采纳的主题可在 申请荣誉值 帖子申请荣誉值,获得 3点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
结帖率:100% (11/11)

签到天数: 2 天

发表于 2015-7-22 08:11:36 | 显示全部楼层   陕西省渭南市
看看这个有没有改观.如果真是画板的问题.那只能用模块了.
从此受制于人

批量图片压缩.zip

182.84 KB, 下载次数: 1

回复

使用道具 举报

结帖率:57% (4/7)
 楼主| 发表于 2015-7-22 11:17:21 高大上手机用户 | 显示全部楼层   辽宁省沈阳市
jr21066 发表于 2015-7-22 08:11
看看这个有没有改观.如果真是画板的问题.那只能用模块了.
从此受制于人

还是不行,只要开始运行,内存占用就一条斜线一直涨,不关闭就不释放。把下面的代码屏蔽掉也是,请问相关模块有什么,我找了一些,但是都是处理图像效果的,锐化旋转什么的。

顺便还请问,有办法直接在字节集的级别处理jpg图像大小吗?网上找不到类似教程。
回复

使用道具 举报

结帖率:100% (2/2)
发表于 2015-7-22 11:24:27 | 显示全部楼层   浙江省宁波市
用好 记得清除数据  还有枚举 可以一个个来 别一次很多
回复

使用道具 举报

结帖率:100% (2/2)
发表于 2015-7-22 11:24:43 | 显示全部楼层   浙江省宁波市
用好 记得清除数据  还有枚举 可以一个个来 别一次很多
回复

使用道具 举报

结帖率:100% (11/11)

签到天数: 2 天

发表于 2015-7-22 11:29:22 | 显示全部楼层   陕西省渭南市
我看模块里有重采样的.应该就是变大小的.
回复

使用道具 举报

结帖率:57% (4/7)
 楼主| 发表于 2015-7-22 19:55:06 | 显示全部楼层   辽宁省沈阳市
剩下我de孩子气 发表于 2015-7-22 11:24
用好 记得清除数据  还有枚举 可以一个个来 别一次很多

您说的问题我都做了。、。。。
回复

使用道具 举报

结帖率:57% (4/7)
 楼主| 发表于 2015-7-22 19:55:27 | 显示全部楼层   辽宁省沈阳市
jr21066 发表于 2015-7-22 11:29
我看模块里有重采样的.应该就是变大小的.

请问。。。。那个模块叫什么?》
回复

使用道具 举报

结帖率:100% (11/11)

签到天数: 2 天

发表于 2015-7-22 20:26:40 | 显示全部楼层   陕西省渭南市
我下载的是这两个.不过都没有试.只是打开看了看功能.

ExImage.rar

729.69 KB, 下载次数: 4

图像处理源码.rar

508.79 KB, 下载次数: 4

回复

使用道具 举报

结帖率:57% (4/7)
 楼主| 发表于 2015-7-28 21:42:34 | 显示全部楼层   辽宁省沈阳市
剩下我de孩子气 发表于 2015-7-22 11:24
用好 记得清除数据  还有枚举 可以一个个来 别一次很多

我每次用完图片都卸载,遍历也是每次重置变量,分开调试时,发现逻辑无误,只是画板每处理一次就会增加一点不能释放的内存,用按钮点击调用也是,关闭程序才会清除。
回复

使用道具 举报

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表