吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 20983|回复: 174
收起左侧

[原创工具] 【键盘人生】-1.8.10-添加【横向合并与竖向合并时图片排序功能】-图片分割与合并

    [复制链接]
键盘人生 发表于 2020-5-8 10:58
本帖最后由 键盘人生 于 2020-9-29 10:03 编辑

2020-08-07 更新
软件版本:1.8.10
增添:横向与竖向图片合并时,按图片文件名升序排序(以前图片没有排序)。
修改:一处BUG。
*******************************************************

微信截图_20200807162038.png

一、软件简介
       1.1 软件编写初衷
       这款软件的编写初衷说简单点为了饭碗,说高尚点是为了事业,起因是单位网站发布文章的时候,经常会带有大量的图片。本来这不是什么大问题一并传上去就好,但是,在传图片的时候发现网站后台自带的富媒体编辑器对图片的尺寸有严格要求,如果图片超过编辑器限制则无法上传。为了这事我找到网站开发商,结果开发商那方答复说网站的后台因为换代原因他们不再提供技术支持了,要想解决我的问题就得升级网站后台,但是网站后台升级费用非常高昂,具体的价钱就不说了(大家可以想象一下在饭店里点菜,因为点了一份猪肉,结账的时候就要你多半个养猪场的价钱是什么感觉)。唉。。。。此处省略对软件开发商以及他们全体家人的问候语二百字。消气之后仔细想想其实开发商也是为了生存,这年头赚点钱不容易,虽然这种狮子大张口,气吞山河的要钱方式令我不齿。另外,我这点小问题不难解决,单张图片尺寸太大上传受到限制,我把每张图片分割然后再上传就行了,抱着这个想法我在网上开始找能够分割图片的软件工具,找了一大圈后发现,现在的分割图片工具共分两类,一类是在线的,不过对图片分割数量有限,如果遇到较大图片需要切割成很小图片块的话就直接提示错误,或者是限制上传图片的次数一天只能提交几次图片,超过次数就要求注册会员开始收费。还有一种是以客户端形式提供的,但使用次数也有限制,超过规定次数之后也需要付费。这比费用支出单位是肯定不能报销的因为没法下账(网上的这些小软件,没法开发票)。最后逼得我实在没办法,还是自己动手丰衣足食吧。于是我就写了这个软件。在软件中没有分割数量限制,没有使用次数限制,只有一个打赏功能。不过就算大家在使用的时候不打赏,软件也不会有一丝一毫的限制(感觉打赏功能有点鸡肋。唉。。)。如果有跟我需求相同的朋友就请自己下载吧,但是在使用前最好仔细看看功能详述与注意事项,一是写这篇文章着实不易,二也是怕大家在使用时出错影响工作。
       1.2 软件功能简述
       软件的功能主要是围绕着“分割图片”与“合并图片”两个核心功能展开的,在此基础上添加了“修改图片”、“批量处理”等等其他辅助功能与之相配合,各项功能的具体使用方法会在下面详细给出。其实,软件最开始的功能非常简陋,后来的许多功能,都是在归纳、总结热心网友们提出宝贵意见的基础上改进而来的,在此,借这个机会像“fysxq”、“chzhzyx”、“judxl”等许许多多对软件提出过宝贵意见以及建议的热心网友们表示由衷的感谢。与此同时,由于我个人精力与能力都有限,软件中难免还会出现各式各样的问题,如果大家发现了软件存在的问题,欢迎大家在这里跟帖提出来,我会抽时间不定时的看看回帖。一旦发现问题我会努力解决。另外,如果大家对这款软件的功能还有其他方面的诉求,或者有更好的整改建议,也可以跟帖提出来,在我能力范围之内我会尽量满足大家的要求。
二、功能详述
       2.1、图片分割

       使用图片分割之前需先点击“其他设置”中的“分割图片选项”,这样才能激活“分割图片”设置区域。
      
微信截图_20200807095716.png

       如果待分割的图片没有存放在本地,可以在地址框中直接输入网址后回车,软件可以自动从网上拉取图片。
       注意:从网上直接加载图片时候,图片类型只能为jpg或者png格式,其他类型的图片暂不支持。另外,在输入时一定要输入“http://”或"https://"。
       如果待分割图片在本地直接点击“选择本地图片”按钮,在文件选择框中选择文件。
       文件选择后,会在左侧图片框中显示出图片,在“选择本地图片”按钮的下方会显示出图片的大小单位是像素。至此图片已经被软件提取完毕。我们可以选择图片的切割方式。参照图片的像素大小,我们可以选择按照像素切割或者是按照块数切割。
       注意:切割图片我们可以按照行、列进行分块切割,也可以进行整行或者整列的切割,至于如何进行切割,最终将由输入的参数决定,例如:选择“按块数”切割,列数填写1,行数填写10,那么软件将会把图片横向分割为10行或11行,反之,列数填写10,行数填写1,软件将会把图片竖向切割为10列或者11列;如果选择“按像素”切割,像素宽度填写1,像素高度填写100,那么软件将会把图片按照100像素的高低进行横向切割,反之像素高度填写1,像素宽度填写100,软件将会按照100像素的宽度对图片进行竖向切割。最后再解释一下为什么我填写10行,软件却切割出11行的问题。因为图片的高度未必大小能均等分出10行,软件在切割图片的时候,前10行一定是均等分进行切割的,但是因为图片的高度未必是10的整数倍,所以无论怎么切割都会比我们预想的多出一块,按列数或按像素对图片进行分割也是一样的道理,在这里我就不再重复说明了。
       设置好参数后,我们可以点击“其他设置”中的“效果预览”按钮查看一下切割的效果,也可以直接点击“保存图片”按钮,对切割图片进行保存。当我们点击“保存图片”按钮的时候,软件会跳出“文件夹”选择对话框。由于切割后图片较多,所以软件直接向文件夹中保存。切割后的图片由软件自动命名,另外保存的格式可以在“其他设置”中进行选择(可保存jpg、bmp、png、gif格式),如果要保存为jpg格式,还可以选择图片质量(jpg右侧滑动条),质量越高图片体积越大,反之质量越差图片体积越小,至于如何平衡两者之间的关系,全看操作者自己的意愿了。另外,在使用“jpg”格式保存图片的时候,还有两个参数会用到一个是“水平DPI”,一个是“垂直DPI”,DPI表示输出分辨率,指每英寸长度上可现实的点数,我个人把它理解为图片的清晰度。把DPI细分的话可以分为水平DPI与垂直DPI,例如说,一张宽高均为1英寸的图片,水平DIP设置为72,垂直DPI设置为72,这个时候就说明图片在水平方向上每英寸划分了72个格,垂直方向上每英寸划分了72个格,那么图片每英寸总过有72X72=5184个格,格越密集那么图片的清晰度也就越高,反之越差,通常来说打印的图片水平DPI与垂直DPI必须达到300或300以上,如果在网络中传输的图片那么为了方便传输可以把值降低到72左右。
       注意:
       1、选择保存的文件夹之后,软件会给出提示信息,这条提示信息非常重要,软件会询问操作者是否清空文件夹下的文件,大家一定要仔细选择。
       2、图片保存方式是通用的,也就是说不单单适用于图片分割功能,同时也适用于软件其他功能对图片的保存,所以,在这里进行统一说明后,在文章的后面将不会再单独提到图片的保存方式。
       2.2、图片合并
       使用图片合并之前需先点击“其他设置”中的“合并图片选项”,这样才能激活“合并图片”设置区域。
      
微信截图_20200807095716.png

       单击“合并图片”下的“选择图片”按钮,选择待合并的图片(可多选)。
       “选择图片”按钮下方的“调色板”按钮是设置图片间隔颜色的(如需要透明色可填写Transparent),右边可填写图片与图片之间的,间隔的距离默认单位是像素。
       “调色板”按钮下方是图片合并的方式,一共有五种合并方式分别为:“竖向合并”、“横向合并”、“模板合并”、“九宫格顺序合并”与“九宫格随机合并”
       2.2.1 竖向合并
       这种合并方式是机械的将图片竖向合并成一排,图片的合并顺序以图片名升序排列。
       2.2.2 横向合并
       这种合并方式是机械的将图片横向合并成一排,图片的合并顺序以图片名升序排列。
       2.2.3 模板合并
       这种合并方式是根据用户自己编写的模板,将图片按照模板中所构造的排列方式进行排列。从下面的图片中我们可以看到通过“模板模式”图片可以进行跨行或者跨列的排列,这将大大方便我们对图片的加工。
      
微信截图_20200807095716.png

       2.2.3.1 模板编写
       用户可以自定义模板样式,下面是我自定义的一个模板,按照这个模板合并出的图片就是上图的样子。
       <?xml version="1.0" encoding="utf-8"?>
       <root>
               <row>       <!--第一行开始-->
                       <column>
                               <row>
                                       <column>
                                               <img roundness="9" width="100" height="100">
                                                       <![CDATA[
                                                C:\新建文件夹\0_0--cb09f949813e9787.png
                                                ]]>

                                               </img>
                                       </column>
                               </row>
                               <row>
                                       <column>
                                               <img roundness="9" width="100" height="100">
                                                       <![CDATA[
                                                C:\新建文件夹\0_0--cb09f949813e9787.png
                                                ]]>

                                               </img>
                                       </column>
                               </row>
                       </column>
                       <column>
                               <img width="210" height="210" roundness="9">
                                       <![CDATA[
                                C:\新建文件夹\0_0--cb09f949813e9787.png
                                ]]>

                               </img>
                       </column>
                       <column>
                               <row>
                                       <column>
                                               <img roundness="9" width="100" height="100">
                                                       <![CDATA[
                                                C:\新建文件夹\0_0--cb09f949813e9787.png
                                                ]]>

                                               </img>
                                       </column>
                               </row>
                               <row>
                                       <column>
                                               <img roundness="9" width="100" height="100">
                                                       <![CDATA[
                                                C:\新建文件夹\0_0--cb09f949813e9787.png
                                                ]]>

                                               </img>
                                       </column>
                               </row>
                       </column>
               </row>       <!--第一行结束-->
               <row>       <!--第二行开始-->
                       <column>
                               <img width="430" height="100" roundness="9">
                                       <![CDATA[
                                C:\新建文件夹\0_0--cb09f949813e9787.png
                                ]]>

                               </img>
                       </column>
               </row>       <!--第二行结束-->
       </root>
       2.2.3.2 模板编写要求
       第一个必须存在“root”节点,这是总节点,所有的配置内容均在其中,不能超出“root”范围。
       第二个“row”节点,这个节点表示行,可以出现多个,在其下一级节点只能嵌套一个或者多个“column”节点,不能嵌套其他节点。
       第三个“column”节点,这个节点表示列,在其下一级可以出现一个或者多个“row”、“img”节点。
       第四个“img”节点,这个节点表示图片,在其中只能存放图片的绝对路径,以方便程序找到并加载图片,在写图片的绝对路径的时候要注意“<![CDATA[”与“]]>”的使用。把文件路径写在其中最为安全可靠。另外“img”节点也是唯一带有属性值的节点,目前一共有三个属性值,分别为“width”、“height”、“roundness”。其中“width”表示图片的宽度单位是像素,“height”表示图片的高度单位是像素,“roundness”表示圆度,取值范围从“1”~“10”,如果省略或者取值1,则表示图片在加载的时候不对其进行圆度处理。如果在“img”节点中不写“width”与“height”属性,软件会用图片默认的大小而不会对图片进行缩放,如果只写“width”或“height”属性,软件会按照“width”活“height”的属性值对图片进行等比缩放,如果“width”与“height”属性值全部填写,软件会严格按照填写的值对图片进行缩放(这种情况下图片可能会出现变形)。
       总结一下,各个节点可以相互嵌套,但是,要注意这么几条规则,“row”节点只能嵌套“column”节点,如果在“row”节点中嵌套了多个“column”节点的话,那么多个同级“column”中包含的图片将进行横向合并;“column”节点可以嵌套多个“row”节点或“img”节点(“row”与“img”节点不能同时嵌套进同一个“column”内,或者说同一个“column”内,要么全部嵌套“row”节点,要么全部嵌套“img”节点),多同级个“img”节点中的图片将会进行横向合并,而多个同级“row”中所包含的图片,将会进行纵向合并。
       注意:
       1、模板必须存放到软件目录下的“Template”文件夹中,新建模板后不用重新启动软件,点击“选择模板”右侧的“刷新”按钮即可载入新建模板。
       2、模板的扩展名必须为“.xml”。
       3、模板的建立必须要遵从规则,否则软件无法对模板进行有效的识别。
       4、模板编写完成后必须要保存为utf-8字符类型(windows默认的字符类型是GB2312)。
       5、模板必须用“<?xml version="1.0" encoding="utf-8"?>”开头,并且必须配置“root”总节点,所有的配置均在总节点内,否则不生效或程序报错。
       2.2.3.3 模板编写步骤
       2.2.3.3.1 模板的建立与头部信息
       在电脑软件所在目录下的“Template”目录中,新建一个文本文件,文件的主文件名可以按照自己的喜好取名,然后修改文件扩展名为“xml”,最后用“记事本”打开并编辑刚刚新建的文档,并在文档中写入模板的头部信息与“root”节点(注意节点的开始与结束标识)。
       <?xml version="1.0" encoding="utf-8"?>
       <root>
               <!--整个框架整体内容写到这里-->
       </root>

       2.2.3.3.2 考虑图片布局并写入行节点
       在构建模板之前首先要考虑的是图片如何布局,考虑好图片的布局之后模板自然也就成型了,在考虑图片布局的时候本着先行后列的原则,也就是先考虑横行,然后再考虑每行中的竖列。以上面的模板为例,整个模板可以横向划分为两大行,如下图所示:
微信截图_20200808082117.png

       在“root”节点内写入我们刚才所规划好的行节点。因为我们规划了两行,所以我们就在“root”节点内写入两个行节点,行节点用“<row>”与“</row>”表示。
       <?xml version="1.0" encoding="utf-8"?>
       <root>
               <row>
                       <!--第一行内容写到这里-->
               </row>
               <row>
                      <!--第二行内容写到这里-->
               </row>

       </root>
       2.2.3.3.3 第一行内容编写
       本着先行后列的原则,划分完整个布局的行节点之后,我们来写第一行的列节点。对于第一行,按照事例中的布局方式,我们可以划分为三列,如下图所示:
微信截图_20200808084520.png

       换分完列节点之后我们可以着手在上面代码的基础上接着编写第一行的列节点,列节点用“<column>”与“</column>”表示。
       <?xml version="1.0" encoding="utf-8"?>
       <root>
               <row>
                       <!--第一行内容写到这里-->
                       <column>
                               <!--第一行第一列内容写到这里-->
                       </column>
                       <column>
                               <!--第一行第二列内容写到这里-->
                       </column>
                       <column>
                               <!--第一行第三列内容写到这里-->
                       </column>

               </row>
               <row>
                      <!--第二行图片内容写到这里-->
               </row>
       </root>
       2.2.3.3.3.1 第一行第一列内容编写
       对于第一行中第一列内容,我们还可以进一步划分,在第一行第一列中,我们把布局划分为上下两行,每行一列,每列中包含一张图片,如下图所示。
微信截图_20200808085749.png

       依照这种划分方式我们在第一行第一列中开始编写相应内容,首先在第一行第一列中建立两个行节点。
       <?xml version="1.0" encoding="utf-8"?>
       <root>
               <row>
                       <!--第一行内容写到这里-->
                       <column>
                               <!--第一行第一列内容写到这里-->
                               <row>
                               </row>
                               <row>
                               </row>

                       </column>
                       <column>
                               <!--第一行第二列内容写到这里-->
                       </column>
                       <column>
                               <!--第一行第三列内容写到这里-->
                       </column>
               </row>
               <row>
                      <!--第二行图片内容写到这里-->
               </row>
       </root>
       然后在每个行节点中建立一个列节点。
       <?xml version="1.0" encoding="utf-8"?>
       <root>
               <row>
                       <!--第一行内容写到这里-->
                       <column>
                               <!--第一行第一列内容写到这里-->
                               <row>
                                       <column>
                                       </column>

                               </row>
                               <row>
                                       <column>
                                       </column>

                               </row>
                       </column>
                       <column>
                               <!--第一行第二列内容写到这里-->
                       </column>
                       <column>
                               <!--第一行第三列内容写到这里-->
                       </column>
               </row>
               <row>
                      <!--第二行图片内容写到这里-->
               </row>
       </root>
       接着在列节点中填写图片节点,注意图片节点中“width”、“height”与“roundness”属性的使用方法。
       <?xml version="1.0" encoding="utf-8"?>
       <root>
               <row>
                       <!--第一行内容写到这里-->
                       <column>
                               <!--第一行第一列内容写到这里-->
                               <row>
                                       <column>
                                               <img roundness="9" width="100" height="100">
                                                       <![CDATA[
                                                C:\新建文件夹\0_0--cb09f949813e9787.png
                                                ]]>

                                               </img>

                                       </column>
                               </row>
                               <row>
                                       <column>
                                               <img roundness="9" width="100" height="100">
                                                       <![CDATA[
                                                C:\新建文件夹\0_0--cb09f949813e9787.png
                                                ]]>

                                               </img>

                                       </column>
                               </row>
                       </column>
                       <column>
                               <!--第一行第二列内容写到这里-->
                       </column>
                       <column>
                               <!--第一行第三列内容写到这里-->
                       </column>
               </row>
               <row>
                      <!--第二行图片内容写到这里-->
               </row>
       </root>
       至此第一行第一列中的图片模板编写完毕。从上面的编写方法中我们可以看出,使用模板进行布局的时候,本着先行后列的原则,并且每张图片最后都一定会附加到某一列内,另外,行与列之间可以相互嵌套。
       2.2.3.3.3.2 第一行第二列内容编写
       编写完第一行第一列中的内容后,第二列相对来说比较好处理,因为第二列中只包含一张图片,我们可以直接在第二列中添加图片信息。
       <?xml version="1.0" encoding="utf-8"?>
       <root>
               <row>
                       <!--第一行内容写到这里-->
                       <column>
                               <!--第一行第一列内容写到这里-->
                               <row>
                                       <column>
                                               <img roundness="9" width="100" height="100">
                                                       <![CDATA[
                                                C:\新建文件夹\0_0--cb09f949813e9787.png
                                                ]]>

                                               </img>
                                       </column>
                               </row>
                               <row>
                                       <column>
                                               <img roundness="9" width="100" height="100">
                                                       <![CDATA[
                                                C:\新建文件夹\0_0--cb09f949813e9787.png
                                                ]]>

                                               </img>

                                       </column>
                               </row>
                       </column>
                       <column>
                               <!--第一行第二列内容写到这里-->
                               <img width="210" height="210" roundness="9">
                                       <![CDATA[
                                C:\新建文件夹\0_0--cb09f949813e9787.png
                                ]]>

                               </img>
                       </column>
                       <column>
                               <!--第一行第三列内容写到这里-->
                       </column>
               </row>
               <row>
                      <!--第二行图片内容写到这里-->
               </row>
       </root>
       2.2.3.3.3.3 第一行第三列内容编写
       由于第三列与第一列内容相同,我们可以直接复制过来。
       <?xml version="1.0" encoding="utf-8"?>
       <root>
               <row>
                       <!--第一行内容写到这里-->
                       <column>
                               <!--第一行第一列内容写到这里-->
                               <row>
                                       <column>
                                               <img roundness="9" width="100" height="100">
                                                       <![CDATA[
                                                C:\新建文件夹\0_0--cb09f949813e9787.png
                                                ]]>

                                               </img>
                                       </column>
                               </row>
                               <row>
                                       <column>
                                               <img roundness="9" width="100" height="100">
                                                       <![CDATA[
                                                C:\新建文件夹\0_0--cb09f949813e9787.png
                                                ]]>

                                               </img>
                                       </column>
                               </row>
                       </column>
                       <column>
                               <!--第一行第二列内容写到这里-->
                               <img width="210" height="210" roundness="9">
                                       <![CDATA[
                                C:\新建文件夹\0_0--cb09f949813e9787.png
                                ]]>

                               </img>
                       </column>
                       <column>
                               <!--第一行第三列内容写到这里-->
                                       <column>
                                               <img roundness="9" width="100" height="100">
                                                       <![CDATA[
                                                C:\新建文件夹\0_0--cb09f949813e9787.png
                                                ]]>

                                               </img>
                                       </column>
                               </row>
                               <row>
                                       <column>
                                               <img roundness="9" width="100" height="100">
                                                       <![CDATA[
                                                C:\新建文件夹\0_0--cb09f949813e9787.png
                                                ]]>

                                               </img>
                                       </column>

                       </column>
               </row>
               <row>
                      <!--第二行图片内容写到这里-->
               </row>
       </root>
       通过第一行模板的编写,我们可以进一步发现一个规律,行节点下可以嵌套列节点,列节点下也可以嵌套行节点,但是,在相互嵌套的时候,只能嵌套一种节点,并且嵌套的子结点与父节点不能相同,与此同时“img”节点只能嵌套在“column”节点下,举个例子在“row”节点中可以嵌套“column”节点,但是不能在“row”节点下再嵌套“row”节点,另外,“img”节点只能嵌套在“column”节点下,“row”节点也可以嵌套在“column”中,但是,我们不能在同一个“column”中既嵌套“row”节点又嵌套“img”节点。
       另外,“img”中“width”与“height”两个属性主要起到根据布局需要控制图片大小的作用,这个模板之所以能够突破以前九宫格布局限制,对图片进行跨行、跨列的布局,这两个属性的运用起到了关键性的作用。
       2.2.3.3.3 第二行内容编写
       依照我们在编写第一行内容时得到的经验,对于第二行内容我们可以在其中建立一列,来添加图片(因为“img”只能附加到“column”节点上),并且通过设定“img”的“width”与“height”属性来拉伸图片,在填写图片的宽、高属性的时候要注意把图片与图片间的行间距也计算在内。
       <?xml version="1.0" encoding="utf-8"?>
       <root>
               <row>
                       <!--第一行内容写到这里-->
                       <column>
                               <!--第一行第一列内容写到这里-->
                               <row>
                                       <column>
                                               <img roundness="9" width="100" height="100">
                                                       <![CDATA[
                                                C:\新建文件夹\0_0--cb09f949813e9787.png
                                                ]]>

                                               </img>
                                       </column>
                               </row>
                               <row>
                                       <column>
                                               <img roundness="9" width="100" height="100">
                                                       <![CDATA[
                                                C:\新建文件夹\0_0--cb09f949813e9787.png
                                                ]]>

                                               </img>
                                       </column>
                               </row>
                       </column>
                       <column>
                               <!--第一行第二列内容写到这里-->
                               <img width="210" height="210" roundness="9">
                                       <![CDATA[
                                C:\新建文件夹\0_0--cb09f949813e9787.png
                                ]]>

                               </img>
                       </column>
                       <column>
                               <!--第一行第三列内容写到这里-->
                                       <column>
                                               <img roundness="9" width="100" height="100">
                                                       <![CDATA[
                                                C:\新建文件夹\0_0--cb09f949813e9787.png
                                                ]]>

                                               </img>
                                       </column>
                               </row>
                               <row>
                                       <column>
                                               <img roundness="9" width="100" height="100">
                                                       <![CDATA[
                                                C:\新建文件夹\0_0--cb09f949813e9787.png
                                                ]]>

                                               </img>
                                       </column>
                       </column>
               </row>
               <row>
                      <!--第二行图片内容写到这里-->
                       <column>
                               <img width="430" height="100" roundness="9">
                                       <![CDATA[
                                C:\新建文件夹\0_0--cb09f949813e9787.png
                                ]]>

                               </img>
                       </column>

               </row>
       </root>
       至此,整个模板编写完毕,我们以用预览的方式观察一下运行效果,如果效果满意,便可直接保存为图片。
       2.2.4 九宫格顺序合并
       这种合并方式是根据合并图片的命令方式来进行图片合并,所以,使用这种合并方式对于文件命名有一定的要求。文件命名类似于“0_0.jpg”这样的文件名,其中第一个0代表行,后面的0代表列,0_0这样的文件名是指第一行,第一张图片,0_1是指第一行,第二张图片,0_2是指第一行,第三张图片以此类推。具体可以看下图。
      
微信截图_20200807112907.png

       上图仅仅是一个事例,不一定非要九张图片,其实几张都可以,只要按照上面的命名规则对要合并的图片进行命名,程序就能按照文件名合并图片,例如下面这张图片。
      
微信截图_20200807095716.png

       注意:等“模板合并”方式成熟后,这种“九宫格顺序合并”方式会取消,因为“模板合并”方式已经完全能够涵盖这种合并方式。
       2.2.5 九宫格随机合并
       这种合并方式是在原有九宫格基础上扩展而来的,这种合并方式对图片没有命名要求,但是也说明这种排列方式不再顾忌图片间横向与竖向的联系,选择图片后图片的顺序将被随机打乱,每点击一次“效果预览”按钮,图片的顺序都会被打乱一次。
      
微信截图_20200807095716.png

       在模板选择的下方还有“行数”、“列数”与“不重复”三项,也是配合九宫格随机合并使用的,其中“行数”与“列数”规定了软件随机抽取图片的排列方式,而“不重复”选项规定了软件在随机抽取的时候,是否会重复的抽取同一张图片。
       注意:“行数”与“列数”还能控制每次抽取的图片数量,软件随机抽取的图片数量通常是“行数”与“列数”的乘积,如果“行数”填写零,或者行数”与“列数”的乘积大于选择的图片总数的话,那么这个九宫格随机抽取将会按照文件的总数来全部抽取,这也是为了避免软件出错的一种自我保护机制。
       2.3、修改图片
       使用修改图片之前需先点击“其他设置”中的“修改图片选项”,这样才能激活“修改图片”设置区域。
      
微信截图_20200807115326.png

       单击“修改图片”下的“选择图片”按钮,选择待修改的图片。
       2.3.1 修改图片大小
       修改图片大小可以使用“缩放方式”下拉菜单来进行设定,在菜单中一共有“无缩放”、“高宽缩放”、“高宽缩放-变形”、“定宽”、“定高”与“剪切”六种方式。
       2.3.1.1 无缩放
       选择“无缩放”选项等同于关闭了缩放功能。
       2.3.1.2 高宽缩放
       选择“高宽缩放”选项,软件会根据下方设定的图片宽度与高度进行缩放,如果图片宽度或者高度小于规定值,则不对宽度或高度进行缩放,使用这种方式对图片进行缩放可能会引起图片的变形。
       2.3.1.3 高宽缩放-变形
       选择“高宽缩放-变形”选项,软件不会考虑图片自身宽度与高度,会严格根据下方设定的图片宽度与高度进行缩放,使用这种方式对图片进行缩放几乎会引起图片的变形。
       2.3.1.4 定宽
       选择“定宽”选项,软件会根据设定的宽度对图片进行等比例的缩放。
       2.3.1.5 定高
       选择“定高”选项,软件会根据设定的高度对图片进行等比例的缩放。
       2.3.1.6 剪切
       选择“剪切”选项,软件会根据设定的宽高对图片进行等比例剪裁。
       2.3.2 圆度
       软件可以根据圆度的设定值对图片边角进行圆滑处理,圆度的设定值从1~10,其中,10-圆度最小,2-圆度最大,如果图片宽高比为1的话同时圆度值选择2,软件会把图片裁剪为圆形,1-关闭圆滑处理。
       2.3.3 水印
       水印内容可以为中文、英文、数字或符号,填写入内容后水印下面的选项会自动变为可选状态。
       2.3.3.1 颜色
       设定水印文本的颜色。
       2.3.3.2 字号
       设定水印文本的字号,也就是字体大小。
       2.3.3.3 字体
       设定水印文本的字体,其中字体选择范围依赖于用户本地字库。
       2.3.3.4 位置
       设定水印添加到图片中的位置,软件支持“左上”、“左下”、“右上”、“右下”、“中间”、“正上”、“正下”、“正左”与“正右”九个位置设定。
       注意:
       1、如果图片宽高小于文字的大小,软件会拒绝添加水印。
       2、修改图片功能可与“批量处理”、“合并图片”与“分割图片”联用,如果与“分割图片”联用,则会在对图片进行分割之后应用“修改图片”中的各项功能;如果与“合并图片”联用,在“合并图片”中有相应设置的选项来决定,在合并前对每张待合并的图片进行修改,还是在合并图片之后,对合并后的整体图片进行修改。
       2.4、批量处理
       使用批量处理之前需先点击“其他设置”中的“批量处理选项”,这样才能激活“批量处理”设置区域。
      
微信截图_20200807115326.png

       这项功能的主要作用是批量对图片进行分割或修改,所以这项功能可以与“分割图片”、“修改图片”两项功能联用。使用前单击“选择文件”按钮,选择要处理的图片文件(可多选),然后设定好各项处理参数后,点击“开始处理”按钮。软件便可根据设置批量处理图片。
       注意:
       1、批量处理功能只针对分割图片与修改图片起作用,对于合并图片,目前还没有找到好的人机对话逻辑,所以,批量处理功能暂时无法应用于合并图片。
       2、批量分割图片的时候,会在源图片的同级目录中新建子目录,目录名称以“Image”开头,分割的图片会保存在这个目录中;批量修改图片会与源图片放到同一个目录中,文件名以源图片的主文件名开头后面添加随机字符串以示区分(新文件的扩展名与源图片的扩展名相同)。
       3、为了加快批量处理功能的运行速度,软件在批量处理图片的时候使用了异步多线程并行方式处理,这种处理方式的好处就是可以加快图片处理速度,但是,也会带来一个麻烦,会非常消耗计算机的内存与CPU资源,所以,在批量处理功能上我做了一个并行数的选项,这个并行数就是软件能够同时处理文件的数量,大家可以根据自身机器配置情况进行设置。
       2.5、保存配置
      
微信截图_20200807115326.png

       这项功能是为了方便大家保存自己设定的参数而开发的,使用的时候可以自己对配置起个名字,然后单击“添加配置”按钮,这样大家的配置便可保存下来,每次使用的时候点选即可应用,当然也可以点击“删除配置”按钮删除掉自己保存的配置,如果大家对自己保存的配置不满意还可以修改,修改的方法很简单,对配置进行相同命名即可覆盖掉以前的配置,用这种方法也可以对“默认配置”进行修改。
       注意:
       1、默认配置不能删除只能修改。
       2、配置文件为软件同目录下的“config.ini”文件,大家可以打开自己查看,但是切勿手动修改,否则软件启动会发生错误。
三、注意事项
       1、这个软件使用C#编写,需要.NET Framework 4.0运行环境。
       2、这个软件可以对图片进行,行与列的分割。如果大家按块对图片进行行分割,那么分割列数填写1,分割行书填写自己要分割的行;如果大家按块数想对列分割,那么分割列数填写要分割的列数,分割行数填写1。如果大家按像素对图片进行横向切割,那么像素宽度填写1,高度随便写;如果按像素对图片进行纵向切割,那么像素高度填写1,像素宽度随便写。
       3、分割图片的耗时跟图片大小、切割块数的多少有直接关系。另外,图片在切割的时候无论何种切割方式都是将图片读取到内存中进行切割,所以注意一下自己机器内存的大小,以及图片的大小。以免内存报错。
       4、从网上直接加载图片时候,图片类型只能为jpg或者png格式,其他类型的图片暂不支持。另外,在输入时一定要输入“http://”或"https://",输入完毕后按回车键。
       5、图片九宫格合并,主要在文件的命名上,文件名以数字开头,类似于“0_0.jpg”这样的文件名,其中第一个0代表行,第二个0代表列,0_0这样的文件名是指第一行,第一张图片,0_1是指第一行,第二张图片,0_2是指第一行,第三张图片以此类推。具体看文章上方关于九宫格的图片说明。
       6、使用九宫格随机功能的时候需要填写列数,程序会根据列数来确定九宫格的排列;另外,选取的文件数要大于列数,如果低于列数就无法完成九宫格随机排列功能。
       7、使用圆角功能的时候一定要注意图片的长宽比值,一旦图片的长宽比值接近于10:1,那么图片在添加圆角功能后可能会造成图片失真。
       8、配置文件与主程序在同一级目录中,可以打开看,但是最好不要手动修改,否则程序会读取错误,造成程序无法正常运行,另外,输入与以前配置相同的名称,程序会自动覆盖掉同名的配置。
       9、无论如何处理图片,源图片都不会发生更改,一切的效果都是在内存中生成并在软件中呈现的。。
       10、批量处理功能只针对分割图片与修改图片起作用,对于合并图片,目前还没有找到好的人机对话逻辑,所以,批量处理功能暂时无法应用于合并图片。
       11、批量分割图片的时候,会在源图片的同级目录中新建子目录,目录名称以“Image”开头,分割的图片会保存在这个目录中;批量修改图片会与源图片放到同一个目录中,文件名以源图片的主文件名开头后面添加随机字符串以示区分(新文件的扩展名与源图片的扩展名相同)。
       12、为了加快批量处理功能的运行速度,软件在批量处理图片的时候使用了异步多线程并行方式处理,这种处理方式的好处就是可以加快图片处理速度,但是,也会带来一个麻烦,会非常消耗计算机的内存与CPU资源,所以,在批量处理功能上我做了一个并行数的选项,这个并行数就是软件能够同时处理文件的数量,大家可以根据自身机器配置情况进行设置。
       13、由于精力实在有限我只进行了简单的测试,所以,软件中难免会有错误,请大家在使用的时候边用边测吧。如果发现问题就发到帖子中,我只要看到了有时间就会处理。。
       14、使用水印功能的时候要注意,如果图片宽高小于文字的大小,软件会拒绝添加水印。
       15、圆角功能以值的方式进行设置,值越小越接近圆,但是最小值只能选2(如果将值设置为2并且图片还是正方形的话,那么将会生成一个圆),如果选1则关闭圆角功能。
       16、九宫格随机抽取有一个行设置,如果行内填写大于0的数,那么随机抽取的文件数就是行X列,如果行填写零,或者行X列大于文件总数的话,那么这个九宫格随机抽取将会按照文件的总数来全部抽取。
       17、由于JPG的压缩与画质呈反比例关系(压缩率越高画质越差,压缩率越低画质越好),所以软件中的JPG调节选项其实就是JPG画质的调节选项。在软件中1%是画质最差但是压缩率最高,100%是画质最好但是压缩率最低。
       18、JPG不支持透明背景,一切透明背景都会呈现为黑色。
       19、由于程序在编译的时候使用了代码保护软件进行保护,所以在运行的时候360之类的软件会有报警,如果大家很在意360之类的报警提示的话。那就绕行吧。。。
四、下载地址
       https://ckbi.lanzouj.com/b01be80hc
       密码:ab4d

       下载.png

免费评分

参与人数 33吾爱币 +37 热心值 +28 收起 理由
addtool + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
吾爱天涯 + 2 + 1 谢谢@Thanks!
秋意渐凉 + 1 + 1 谢谢@Thanks!
CkTech + 1 谢谢@Thanks!
dell2000 + 1 + 1 继续更新啦——特别是针对按行按列的合并
lds114 + 1 + 1 我很赞同!
bullshit + 1 + 1 谢谢@Thanks!
drw + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
GaoDaDa + 1 + 1 鼓励转贴优秀软件安全工具和文档!
龙树 + 1 谢谢@Thanks!
逆の蝶 + 1 热心回复!
qingshen + 1 + 1 谢谢@Thanks!
11ewww + 1 + 1 我很赞同!
Excel52 + 1 支持原创
晓寒轻 + 1 用心讨论,共获提升!
judxl + 1 + 1 谢谢@Thanks!
远水涵秋 + 1 + 1 我很赞同!
tobester + 1 + 1 我很赞同!
hoho915 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
aria1983 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
tjdx + 1 + 1 谢谢@Thanks!
九八不吃辣 + 1 我很赞同!
wwhwwj888 + 1 谢谢@Thanks!
godxkey + 1 + 1 谢谢@Thanks!
麒麟66 + 1 + 1 谢谢@Thanks!
x_killua + 1 + 1 谢谢@Thanks!
tgguan + 1 + 1 网上有个收费的,我自己之前也写过一个,还是楼主这个不错。
fysxq + 1 + 1 我很赞同!
村口老兽医 + 1 + 1 谢谢@Thanks!
小火 + 1 + 1 像素图不错
zHiHz + 1 + 1 我很赞同!
wxzh023 + 1 + 1 谢谢@Thanks!
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 键盘人生 发表于 2020-5-28 08:50
chzhzyx 发表于 2020-5-27 20:14
看到楼主又更新了很多功能,免费软件做到这样,敬佩
我比较期待的批量合并功能,看到楼主说没想好人机交互 ...

看到楼主又更新了很多功能,免费软件做到这样,敬佩
我比较期待的批量合并功能,看到楼主说没想好人机交互的逻辑,我从工作实用角度是这样想的,看有帮助不?
把需要合并为一图的原始图案定义为一组,有高低两种方案,楼主选其一实现:
1、低难度方案,限制每组内需要合并图案数量必须相同。让使用者输入这几个数据,每组内图片张数(假定为n),每组内行数(x),每组内列数(y),然后就按照每n张图片x行y列输出生成就行了。
2、高难度方案,每组内需要合并图案数量不一定相同。使用者需要按照a_001,a_002,a_003,a_004,……     b_001,b_002,……   c_001,c_002,c_003,c_004,方式命名。仍然让使用者输入每组行数和列数,然后程序默认文件名内_前相同的为一组,按照组内x行y列输出生成就行了。
不知道我表达清楚没有,供楼主参考。

呵呵。。。首先,感谢您对我软件的关注。你的意思我已经清楚了。当初,我也考虑过这样的人机对话逻辑。初次尝试这样的对话逻辑是体现在九宫格顺序合并这个功能上,但是,这种方式有点折腾用户。就拿九宫格顺序合并来说,大家不得不按照要求一个个重命名文件,以便迁就软件读取。所以,我猜想九宫格顺序合并这个功能可能实际上用的不多,因为重命名文件太麻烦了,尤其是当图片比较多的时候,因此有人要求九宫格随机抽取文件的时候,我考虑这也许是一种二维合并方式的折中选择(用户与机器都各退一步,用户不要求图片之间的横向、纵向联系,机器不要求文件名),用户操作简便易行减少了用户在操作上的负担,使用频率应该比顺序合并的方式更高。因为这个原因我才答应了这个请求。

在批量处理这个功能的体现上也是这样,你提出的解决方案我感觉比九宫格顺序合并对文件的命名的要求还要高。其实,对合并功能在逻辑上进行归类的话一共包含两类逻辑。一个类一维合并,一个类二维合并,一维合并与二维合并同时又各包含两种方式(一维的横纵合并、二维的顺序、随机合并),所以,批量处理合并最难的地方,是一次性体现出两类四种逻辑关系的同时,又不能给用户造成太多的负担。换句话说就是用简单的操作体现出两类四种合并方式的逻辑关系,这才是这个功能最难的地方。呵呵。。。。也是我最头痛的地方,如果不考虑用户使用体验的话,这个功能不难写。但是这么做出来的功能成本太高,我这里所说的成本不单单是指程序开发的成本,我记得当年上大学的时候,我的一位导师就说过,每个软件的功能都映射了一个或者几个实际中遇到的问题的,无法解决实际问题的软件,开发成本是最高的,因为开发出来没人会使用,一套软件哪怕只有一行代码,但是没人用,这对开发人员来说也是一种高成本的浪费。因此,在考虑这个功能的时候,我一直把用户使用体验考虑其中(中导师的毒太深,思维有点固化了。呵呵。。见笑。。),如果这么考虑的话,那这个功能在逻辑上对我来说是有难度的,除此以外在时间上也的确不太宽裕。这就是我一直没动手写的原因。

呵呵。。。。啰里啰嗦的说了一堆,不知道你能不能明白我的意思。呵呵。。。
fysxq 发表于 2020-7-12 19:24
本帖最后由 fysxq 于 2020-7-12 19:26 编辑

你真好,果然解决了。现在路径也是可以记忆的,真的很好哎。


zrf1980 发表于 2020-5-8 12:29
lizhipei78 发表于 2020-5-8 12:59
以前都是用PS来进行切割,这个就简单多了
杰丽 发表于 2020-5-8 13:10
可以预览切割吗
oveov 发表于 2020-5-8 13:34
楼主这个方便使用. 收藏了.楼主辛苦
站长 发表于 2020-5-8 13:46
可以用PS或XnView啊
 楼主| 键盘人生 发表于 2020-5-8 14:34
站长 发表于 2020-5-8 13:46
可以用PS或XnView啊

不会PS和XnView。唉。。。。。。我当初曾想学过,不过看着那厚厚的书,我感觉还是写小软件来的简单。呵呵。。。
 楼主| 键盘人生 发表于 2020-5-8 14:37
本帖最后由 键盘人生 于 2020-5-8 15:01 编辑
杰丽 发表于 2020-5-8 13:10
可以预览切割吗

没有预切割。呵呵。。。。。。。当初写的时候没考虑那么多。呵呵。。另外,分割图片不会破坏原图。所以,我就没写切割预览。呵呵。。。。如果切割的不满意,大不了再重新切割一次。反正原图还在。
没有海洋De岛屿 发表于 2020-5-8 15:20
????直接把我桌面上的word文件吞了好几个。。
 楼主| 键盘人生 发表于 2020-5-8 15:25
没有海洋De岛屿 发表于 2020-5-8 15:20
????直接把我桌面上的word文件吞了好几个。。

在点击分割按钮之后,提示选择文件夹的时候,新建一个文件夹并选择它。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 提醒:禁止复制他人回复等『恶意灌水』行为,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-26 17:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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