回覆列表
  • 1 # 統計小宋

    在Python種實現appium滾動截圖的方法如下。

    from PIL import Image

    import os

    #開啟2個影象

    image1 = os.getcwd() +"/pics/1.png"

    image2 = os.getcwd() +"/pics/2.png"

    img_info1 = Image.open(image1)

    img_data1 = info1.getdata()

    img_info2 = Image.open(image2)

    img_data2 = info2.getdata()

    #獲取第一張圖最後一行和倒數第五行的畫素資訊

    last_pix = []

    for w in range(img_info1.width):

    last_pix.append(img_data1.getpixel((w, info1.height-1)))

    last_five_px = []

    for w in range(img_info1.width):

    last_five_px.append(img_data1.getpixel((w, info1.height-6)))

    #尋找在第二張圖中和第一張圖最後一行相等的行

    #如果相等行存在,去看往前數5行是否也相等

    #這個判斷可能要根據頁面的複雜度多校驗幾次,約簡單的圖,越要多校驗幾行

    row = 0

    print("圖片高度是:{}".format(img_info2.height))

    for h in range(img_info2.height):

    current = []

    current_five = []

    for w in range(img_info2.width):

    current.append(img_data2.getpixel((w, h)))

    try:

    current_five.append(img_data2.getpixel((w, h-5)))

    except Exception as e:

    print("處理h-5為空的情況")

    if current == last_pix and current_five == last_five_px:

    print("第{}行是一樣的".format(row))

    break

    else:

    row =row + 1

    #裁剪第二張圖

    print(img_info2.size)

    cropped2 = info2.crop((0, row+1, info2.width, info2.height))

    cropped2.save(os.getcwd()+"/pics/temp.png")

    #拼接圖片

    newpic = Image.new("RGB", (img_info1.width, cropped2.height + info1.height))

    newpic.paste(img_info1, (0, 0))

    newpic.paste(cropped2, (0, info1.height+1))

    newpic.save(os.getcwd()+"/pics/temp3.png")

  • 中秋節和大豐收的關聯?
  • 性格包含哪些基本要素?