python画出来的好看的图片,python怎么生成图片

  python画出来的好看的图片,python怎么生成图片

  在自动化测试中,除了通常的值验证外,还经常进行图像验证,例如图像的匹配率~我爱你~输出图像的差分图像等。本文主要使用缓冲区图像(缓冲区映像)类操作图像比对和差分图像输出,大致思路如下。

  用图像(图片)读取图像,生成相应的缓冲图像实例(图像操作流程)

  2 .修改对象图像的尺寸以适合期望的图像的尺寸(像素匹配的准备页:1。

  3 .获取每个(宽度)的阿尔伯克基,并且获取相应的红绿蓝的值

  4 .对每个像素点的r、g、b进行比较(需要定义允许的r、g、b的误差)的双曲馀弦值。

  5 .统计不同的像素点并生成差异(差异)图像

  代码如下所示。

  导入javax。图像。图像;

  导入java.awt.*:

  导入java。awt。形象。缓冲图像:

  导入java.io.File:

  导入java。超正析象管异常:

  导入java。文字。十进制格式格式:

  公共类图像定义{

  //不同的像素标记为红色

  publicstaticfinalintrgb _ red=16711680

  //允许的红绿蓝的单维像素差

  publicstatiflintdff _ allow _ range=5;

  //不同像素点统计值

  publicstaticintdiffpointcount=0

  从//RGB值中提取红的

  pubstatiticintgetdred(intrgbvalue)>

  返回RGB值0 xff 0000 16

  }

  从//RGB值中提取格林!格林

  publicstattgreen(intrigvalue)>

  返回rgbv value 0 xff 00 8;

  }

  //从RGB(三原色)值提取蓝的

  publicstatgettblu(intrgbvalue)>

  返回RGB值0 xff

  }

  //*

  *比较两幅图像,用红色表示不同的像素点,本地保存差分图像,打印一致率

  * @param srcImgPath

  * @param targetImgPath

  */

  pubstatcvoid比较图像(string src img path,String targetImgPath)>

  尝试[

  缓冲图像src img=image。阅读(新文件)srcimgpath

  buffer edimagetargetimg=image。阅读(新文件(目标img路径));

  diffPointCount=0:

  缓冲图像diff=src img

  int src height=src img。获取高度(;

  int src width=src img获取宽度(;

  //根据源图像的尺寸修改要比较的图像的尺寸

  图片目标=更改图像大小(img目标、srcHeight、src width);

  int srcrgb

  目标间rgb

  for(inth=0);h。对

  for(intw=0);w代表

  src RGB=src img。信息GB(宽,高);

  目标RGB=目标img。SVG(w,h);

  获得红色(src RGB(-get red)目标RGB))diff _ allow _ range

  数学,数学ABS(获得绿色(src RGB)-获取绿色(目标RGB ) ) DIFF_ALLOW_RANGE

  数学,数学ABS(获取蓝色(src RGB)-获取蓝色(目标RGB))差异允许范围

  差异。设置RGB(w、h、RGB _ red);

  差别计数;

  }

  }

  }

  //保存差分图像

  形象。write(diff img, jpg ,new file))diff。jpg

  System.out.println(无法保存差分图像我的天);

  //计算相似度(保留小数点后四位)的双曲馀弦值。

  int total pixel=src height * src width;

  十进制格式=新的十进制格式(#).# # #

  双匹配率=(总像素-差异点计数)/(总像素* 1.0);

  System.out.println(图像相似度为decimalformat.format(匹配率);

  }catch(异常)}

  例如打印堆栈跟踪(;

  }

  }

  //*

  更改缓冲图像的图像大小,将其与源图像进行比较

  * @param图像

  * @param newHeight

  * @param newWidth

  * @返回

  */

  public static buffer edimagechangeimagesize(buffer edimageimage,int newHeight,int newWidth)>

  图像img=图像。getscaledinstance(新宽度、新高度、图像)。缩放_平滑:

  intwidth=img。获取宽度(null);

  in thigh=img . get height(null):

  //获取新图像的缓冲图像实例

  bufferedimage=newbufferedimage(宽度、高度、

  缓冲区图像(缓冲区映像)。类型_INT_ARGB:

  graphicssg=新的缓冲区图像。获取图形(:

  g.drawimage(img,0,0,null);

  g。规定(;

  返回newbufferedimage

  }

  publicstaticvoidmain(字符串[]args)>

  比较( 1 .jpg) 2。jpg

  }

  }

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: