找回密码
 立即注册

QQ登录

只需一步,快速开始

微信小工具

关注:3

所属分类: 微信开发 微信公众号开发资源 微信小工具

微信公众号开发过程可能会用到的各种小工具,例如一些python、js写的脚本,涵盖微信支付、微信抓包、微信通信、公众号辅助等等

图片格式报纸裁剪器,用于上传到微信公众号

[复制链接]
查看: 553|回复: 1
最佳答案
0 

15

主题

21

帖子

263

积分

新人求带

积分
263
 楼主| 发表于 2017-4-20 17:53:20 | 显示全部楼层 |阅读模式
图片格式报纸裁剪器,用于上传到微信公众号

Python代码
  1. #coding:utf-8

  2. from tkinter import *
  3. from tkinter import filedialog
  4. from PIL import Image
  5. from qiniu import Auth,put_file,etag,urlsafe_base64_encode
  6. import datetime
  7. import os

  8. def merge():
  9.     y = 0
  10.     listdir = ("./mgb/1.jpg", "./mgb/2.jpg", "./mgb/3.jpg", "./mgb/4.jpg")
  11.     toImage = Image.new('RGBA', (3000, 16800))
  12.     for img in listdir:
  13.         im = Image.open(img)
  14.         #w = im.size
  15.         im = im.resize((3000,4200))
  16.         #im.show()
  17.         toImage.paste(im,(0,y*4200))
  18.         y += 1
  19.     #toImage.show()
  20.     toImage.save("./mgb/麻工报-长版.jpg")
  21.     Lbox.insert(END, "已合并为长图!")
  22.     Lbox.see(END)

  23. def upload_to_qiniu():
  24.     Lbox.insert(END, "开始上传进程...")
  25.     Lbox.see(END)
  26.     merge()
  27.     q = Auth('_LIfY13V9lJmTMMedZ605-WyFMCcADuNVyx9c3Jl', '7U52pAHpRzYLOkBy8vZGJttKK7p5JM9SzFUdis36')
  28.     bucket_name = 'magong'
  29.     time_now = datetime.datetime.now().strftime('%m-%d-%y')
  30.     key = "mgb-"+time_now+".jpg"
  31.     token = q.upload_token(bucket_name, key, 3600)
  32.     localfile = './mgb/麻工报-长版.jpg'
  33.     Lbox.insert(END, "上传中...")
  34.     try:
  35.         ret, info = put_file(token, key, localfile)
  36.         print(info)
  37.         assert ret['key'] == key
  38.         assert ret['hash'] == etag(localfile)

  39.     except:
  40.         Lbox.insert(END,"上传失败!")
  41.     E1.delete(0, END)
  42.     E1.insert(END,"http://onq59w5r4.bkt.clouddn.com/"+key)
  43.     Lbox.insert(END, "上传完毕!")
  44.     Lbox.see(END)

  45. def up():
  46.     global states
  47.     states = 0
  48.     obv.deselect()


  49. def obv():
  50.     global states
  51.     states = 1
  52.     up.deselect()

  53. def resize_pic():
  54.     print(states)
  55.     file = E1.get()
  56.     im = Image.open(file)
  57.     w_size = im.size[0]
  58.     h_size = im.size[1]
  59.     Lbox.insert(END,"全图宽%d 全图高%d"%(w_size,h_size))
  60.     new_w_size = w_size/2
  61.     new_h_size = h_size
  62.     left_img = im.crop((0, 0, new_w_size, new_h_size))
  63.     if os.path.exists("./mgb"):
  64.         pass
  65.     else:
  66.         os.mkdir("./mgb")
  67.     if states == 0:
  68.         left_img.save("./mgb/4.jpg", quality=90)
  69.         Lbox.insert(END, "已生成第4版")
  70.     else:
  71.         left_img.save("./mgb/2.jpg", quality=90)
  72.         Lbox.insert(END, "已生成第2版")
  73.     Lbox.insert(END,"已生成第一张图片")
  74.     right_img = im.crop((new_w_size+1,0,w_size,h_size))
  75.     if states == 0:
  76.         right_img.save("./mgb/1.jpg", quality=90)
  77.         Lbox.insert(END, "已生成第1版")
  78.     else:
  79.         right_img.save("./mgb/3.jpg", quality=90)
  80.         Lbox.insert(END, "已生成第3版")
  81.     Lbox.insert(END, "已生成第二张图片")
  82.     Lbox.insert(END, "已完成裁剪!")
  83.     Lbox.see(END)

  84. def getfilepath():
  85.     filepath = filedialog.askopenfilename()
  86.     E1.delete(0,END)
  87.     E1.insert(END,filepath)
  88.     print(filepath)

  89. def main():
  90.     root = Tk()
  91.     root.title('麻工报裁剪器 V2.1')
  92.     #root.geometry("380x260+500+500")
  93.     fileframe = Frame(root)
  94.     fileframe.pack()
  95.     #Label(fileframe,text = "文件路径:").pack(side = LEFT)
  96.     global E1
  97.     E1 = Entry(fileframe,width=40, bd=3)
  98.     E1.pack(side = LEFT)
  99.     Button(fileframe,text="选择文件", command = getfilepath).pack(side = LEFT)  # 加入文件选择窗

  100.     #checkframe
  101.     checkframe = Frame(root)
  102.     checkframe.pack()
  103.     global up,obv
  104.     up = Checkbutton(checkframe,text = '正面',command=up)
  105.     obv = Checkbutton(checkframe,text = '反面',command=obv)
  106.     up.pack(side=LEFT)
  107.     obv.pack(side=LEFT)

  108.     buttonframe = Frame(root)
  109.     buttonframe.pack()
  110.     Button(buttonframe,text="裁剪", fg='black', bg='green', width=7,command=resize_pic).pack(side = LEFT)
  111.     Button(buttonframe, text="上传", fg='black', bg='green', width=7, command=upload_to_qiniu).pack(side = LEFT)
  112.     global Lbox
  113.     Lbox = Listbox(root,height=5, width=50,selectmode='EXTENDED')
  114.     Lbox.pack()
  115.     Label(root,text="麻工新媒体∙郭升昭", anchor=CENTER).pack()
  116.     root.mainloop()

  117. if __name__ == "__main__":
  118.     main()
复制代码

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

最佳答案
0 

2

主题

111

帖子

700

积分

专家路上

积分
700
发表于 2017-5-9 08:58:50 | 显示全部楼层
......................
回复

使用道具 举报

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

本版积分规则

关闭

站长推荐 上一条 /1 下一条



henkuai.com是专业的第三方微信开发者平台,为生态而生。


本站为第三方微信开发者平台,非腾讯官方网站。

天津市滨海新区
中新生态城中成大道生态建设公寓9号楼3层301

欢迎来这里一起喝喝茶,
聊聊你的产品。

微信公众号gongzhongkaifa

工作日12小时内回复。

网站业务
zhongcong@henkuai.com

工作日12小时内回复。

市场合作
songchang@henkuai.com