itchat的使用

1.登录退出

2.获取好友以及群列表

因为userName好像会变,只存储userName是不行的
一般是搜索好友后重新获取username发消息才会成功,

2.1搜索好友

 # 1获取自己的用户信息,返回自己的属性字典
    result = itchat.search_friends()
    print(result)

 #2 根据姓名查找用户
    result = itchat.search_friends(name='培杰')
    print(result)

 #3 根据微信号查找用户
    result = itchat.search_friends(wechatAccount='zpj779878443')
    print(result)

 #4 根据UserName查找用户
    result = itchat.search_friends(userName='@xxb096c3036543exx2d4de4fc222xxxx')
    print(result)
#5 也可以多条件定位用户
itchat.search_friends(name='LittleCoder机器人', wechatAccount='littlecodersh')

2.2搜索群聊

# 获取特定UserName的群聊,返回值为一个字典
itchat.search_chatrooms(userName='@@abcdefg1234567')
# 获取名字中含有特定字符的群聊,返回值为一个字典的列表
itchat.search_chatrooms(name='LittleCoder')
# 以下方法相当于仅特定了UserName
itchat.search_chatrooms(userName='@@abcdefg1234567', name='LittleCoder')

3.发送消息给好友以及群

4.获取好友以及群消息

import itchat

@itchat.msg_register(itchat.content.TEXT, isGroupChat=True)  #注册对文本消息进行监听,对群聊进行监听
def print_content(msg):
    print(msg['Text']+'||来自:'+msg['FromUserName']+'群,用户:'+msg['ActualNickName'])  #页面打印,也可根据实现情况进行入库操作。  msg['Text'] 群消息;msg['FromUserName'] 群id;msg['ActualNickName'] 发群消息的用户昵称

itchat.auto_login()  # 手机扫码登录

itchat.run()

5.公众号消息

6.条形码二维码扫描

参考:https://www.cnblogs.com/dongxiaodong/p/10216579.html

使用pyzbar和PIL 及OpenCV-Python,实现二维码图片框选和在图片上印字体


image.png
import cv2
import pyzbar.pyzbar as pyzbar
import numpy
from PIL import Image, ImageDraw, ImageFont

def decodeDisplay(imagex1):
    # 转为灰度图像
    gray = cv2.cvtColor(imagex1, cv2.COLOR_BGR2GRAY)
    barcodes = pyzbar.decode(gray)

    for barcode in barcodes:

        # 提取条形码的边界框的位置
        # 画出图像中条形码的边界框
        (x, y, w, h) = barcode.rect
        cv2.rectangle(imagex1, (x, y), (x + w, y + h), (255, 255, 0), 2)

        # 条形码数据为字节对象,所以如果我们想在输出图像上
        # 画出来,就需要先将它转换成字符串
        barcodeData = barcode.data.decode("utf-8")
        barcodeType = barcode.type

        #不能显示中文
        # 绘出图像上条形码的数据和条形码类型
        #text = "{} ({})".format(barcodeData, barcodeType)
        #cv2.putText(imagex1, text, (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX,5, (0, 0, 125), 2)

        #更换为:
        img_PIL = Image.fromarray(cv2.cvtColor(imagex1, cv2.COLOR_BGR2RGB))

        # 参数(字体,默认大小)
        font = ImageFont.truetype('fontx/hwst.ttf', 25)
        # 字体颜色(rgb)
        fillColor = (255,0,0)
        # 文字输出位置
        position = (x, y-10)
        # 输出内容
        str = barcodeData

        # 需要先把输出的中文字符转换成Unicode编码形式(  str.decode("utf-8)   )

        draw = ImageDraw.Draw(img_PIL)
        draw.text(position, str, font=font, fill=fillColor)
        # 使用PIL中的save方法保存图片到本地
        # img_PIL.save('02.jpg', 'jpeg')

        # 转换回OpenCV格式
        imagex1 = cv2.cvtColor(numpy.asarray(img_PIL), cv2.COLOR_RGB2BGR)


        # 向终端打印条形码数据和条形码类型
        print("扫描结果==》 类别: {0} 内容: {1}".format(barcodeType, barcodeData))
    cv2.imshow("camera", imagex1)
    # 窗口等待任意键盘按键输入,0为一直等待,其他数字为毫秒数
    cv2.waitKey(0)

    # 销毁窗口,退出程序
    cv2.destroyAllWindows()

def detect():
    cv2.namedWindow("camera",cv2.WINDOW_NORMAL)
    frame=cv2.imread("imgx\dongxiao2.png")
    decodeDisplay(frame)


if __name__ == '__main__':
    detect()

OpenCV-Python视频读取,并帧处理视频,实现条码的动态框选和识别


image.png
import cv2
import pyzbar.pyzbar as pyzbar
import numpy
from PIL import Image, ImageDraw, ImageFont

def decodeDisplay(imagex1):
    # 转为灰度图像
    gray = cv2.cvtColor(imagex1, cv2.COLOR_BGR2GRAY)
    barcodes = pyzbar.decode(gray)

    for barcode in barcodes:

        # 提取条形码的边界框的位置
        # 画出图像中条形码的边界框
        (x, y, w, h) = barcode.rect
        cv2.rectangle(imagex1, (x, y), (x + w, y + h), (0, 255, 0), 2)

        # 条形码数据为字节对象,所以如果我们想在输出图像上
        # 画出来,就需要先将它转换成字符串
        barcodeData = barcode.data.decode("utf-8")
        barcodeType = barcode.type

        #不能显示中文
        # 绘出图像上条形码的数据和条形码类型
        #text = "{} ({})".format(barcodeData, barcodeType)
        #cv2.putText(imagex1, text, (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX,5, (0, 0, 125), 2)


        #更换为:
        img_PIL = Image.fromarray(cv2.cvtColor(imagex1, cv2.COLOR_BGR2RGB))

        # 参数(字体,默认大小)
        font = ImageFont.truetype('fontx/hwst.ttf', 35)
        # 字体颜色(rgb)
        fillColor = (0,255,255)
        # 文字输出位置
        position = (x, y-10)
        # 输出内容
        str = barcodeData

        # 需要先把输出的中文字符转换成Unicode编码形式(  str.decode("utf-8)   )


        draw = ImageDraw.Draw(img_PIL)
        draw.text(position, str, font=font, fill=fillColor)
        # 使用PIL中的save方法保存图片到本地
        # img_PIL.save('02.jpg', 'jpeg')

        # 转换回OpenCV格式
        imagex1 = cv2.cvtColor(numpy.asarray(img_PIL), cv2.COLOR_RGB2BGR)


        # 向终端打印条形码数据和条形码类型
        print("扫描结果==》 类别: {0} 内容: {1}".format(barcodeType, barcodeData))
    cv2.imshow("camera", imagex1)


def detect():
    cv2.namedWindow("camera",cv2.WINDOW_NORMAL)
    camera = cv2.VideoCapture(0)

    while True:
        # 读取当前帧
        ret, frame = camera.read()
        #print(ret.shape)
        decodeDisplay(frame)

        if(cv2.waitKey(5)==27):
            break
    camera.release()
    cv2.destroyAllWindows()


if __name__ == '__main__':
    detect()

你可能感兴趣的:(itchat的使用)