婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > python 實現圖片裁剪小工具

python 實現圖片裁剪小工具

熱門標簽:杭州房產地圖標注 甘肅高頻外呼系統 江門智能電話機器人 滴滴地圖標注公司 地圖標注可以遠程操作嗎 如何申請400電話代理 智能電話機器人調研 天津塘沽區地圖標注 400電話在線如何申請

完整項目地址下載:https://github.com/rainbow-tan/rainbow/tree/master/%E8%A3%81%E5%89%AA%E5%9B%BE%E7%89%87

實現:tkinter 畫布上顯示圖片,按下鼠標左鍵并且移動,實現截圖

# -*- encoding=utf-8 -*-
import os
import tkinter as tk

from PIL import Image
from PIL import ImageTk

left_mouse_down_x = 0
left_mouse_down_y = 0
left_mouse_up_x = 0
left_mouse_up_y = 0
sole_rectangle = None


def left_mouse_down(event):
  # print('鼠標左鍵按下')
  global left_mouse_down_x, left_mouse_down_y
  left_mouse_down_x = event.x
  left_mouse_down_y = event.y


def left_mouse_up(event):
  # print('鼠標左鍵釋放')
  global left_mouse_up_x, left_mouse_up_y
  left_mouse_up_x = event.x
  left_mouse_up_y = event.y
  corp_img(img_path, 'img/one_corp.png', left_mouse_down_x, left_mouse_down_y,
       left_mouse_up_x, left_mouse_up_y)


def moving_mouse(event):
  # print('鼠標左鍵按下并移動')
  global sole_rectangle
  global left_mouse_down_x, left_mouse_down_y
  moving_mouse_x = event.x
  moving_mouse_y = event.y
  if sole_rectangle is not None:
    canvas.delete(sole_rectangle) # 刪除前一個矩形
  sole_rectangle = canvas.create_rectangle(left_mouse_down_x, left_mouse_down_y, moving_mouse_x,
                       moving_mouse_y, outline='red')


def right_mouse_down(event):
  # print('鼠標右鍵按下')
  pass


def right_mouse_up(event):
  # print('鼠標右鍵釋放')
  pass


def corp_img(source_path, save_path, x_begin, y_begin, x_end, y_end):
  if x_begin  x_end:
    min_x = x_begin
    max_x = x_end
  else:
    min_x = x_end
    max_x = x_begin
  if y_begin  y_end:
    min_y = y_begin
    max_y = y_end
  else:
    min_y = y_end
    max_y = y_begin
  save_path = os.path.abspath(save_path)
  if os.path.isfile(source_path):
    corp_image = Image.open(source_path)
    region = corp_image.crop((min_x, min_y, max_x, max_y))
    region.save(save_path)
    print('裁剪完成,保存于:{}'.format(save_path))
  else:
    print('未找到文件:{}'.format(source_path))


if __name__ == '__main__':
  pass
  win = tk.Tk()
  frame = tk.Frame()
  frame.pack()
  screenwidth = win.winfo_screenwidth()
  screenheight = win.winfo_screenheight()
  img_path = 'img/one.png'
  # img_path = 'img/bg.jpg'
  # img_path = 'img/test.jpg'
  # img_path = 'img/pic.gif'
  image = Image.open(img_path)
  image_x, image_y = image.size
  if image_x > screenwidth or image_y > screenheight:
    print('The picture size is too big,max should in:{}x{}, your:{}x{}'.format(screenwidth,
                                          screenheight,
                                          image_x,
                                          image_y))
  img = ImageTk.PhotoImage(image)
  canvas = tk.Canvas(frame, width=image_x, height=image_y, bg='pink')
  i = canvas.create_image(0, 0, anchor='nw', image=img)
  canvas.pack()
  canvas.bind('Button-1>', left_mouse_down) # 鼠標左鍵按下
  canvas.bind('ButtonRelease-1>', left_mouse_up) # 鼠標左鍵釋放
  canvas.bind('Button-3>', right_mouse_down) # 鼠標右鍵按下
  canvas.bind('ButtonRelease-3>', right_mouse_up) # 鼠標右鍵釋放
  canvas.bind('B1-Motion>', moving_mouse) # 鼠標左鍵按下并移動
  win.mainloop()

原圖one.png

 運行

one_corp.png

以上就是python 實現圖片裁剪小工具的詳細內容,更多關于python 圖片裁剪的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • 詳解Python+opencv裁剪/截取圖片的幾種方式
  • Python基于tkinter canvas實現圖片裁剪功能
  • Python OpenCV實現裁剪并保存圖片
  • Python 讀取xml數據,cv2裁剪圖片實例
  • python通過opencv實現圖片裁剪原理解析
  • Python實現圖片裁剪的兩種方式(Pillow和OpenCV)
  • python openvc 裁剪、剪切圖片 提取圖片的行和列
  • python PIL和CV對 圖片的讀取,顯示,裁剪,保存實現方法
  • python實現對圖片進行旋轉,放縮,裁剪的功能
  • Python圖片處理之圖片裁剪教程

標簽:重慶 德宏 東莞 廊坊 漢中 長春 河池 臨汾

巨人網絡通訊聲明:本文標題《python 實現圖片裁剪小工具》,本文關鍵詞  python,實現,圖片,裁剪,小,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python 實現圖片裁剪小工具》相關的同類信息!
  • 本頁收集關于python 實現圖片裁剪小工具的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 乌拉特中旗| 翁牛特旗| 方山县| 安图县| 荣成市| 始兴县| 江北区| 甘洛县| 台湾省| 阿合奇县| 桂林市| 南召县| 甘泉县| 台中县| 寿阳县| 定日县| 兖州市| 绵竹市| 玛纳斯县| 梁河县| 山东| 南岸区| 玉龙| 孟州市| 泽普县| 绥阳县| 拜城县| 土默特左旗| 盐源县| 景东| 高雄县| 安新县| 怀柔区| 大姚县| 清徐县| 巴里| 清徐县| 金溪县| 井研县| 九龙县| 青海省|