当前位置: 首页 > wzjs >正文

电子商务网站建设及推广在网上怎么赚钱快

电子商务网站建设及推广,在网上怎么赚钱快,渭南经开区,小程序网站怎么做目录 图像处理 实现 测试 unittest pytest 图像处理 实现界面化操作,使用PIL库实现简单的图像处理功能,如缩放(设置缩放比例)、旋转和滤镜、对比度调整、亮度调整、灰度图、二值化图(二值图如果使用的是彩色图片需…

目录

图像处理

实现

测试

unittest

pytest


图像处理

实现界面化操作,使用PIL库实现简单的图像处理功能,如缩放(设置缩放比例)、旋转和滤镜、对比度调整、亮度调整、灰度图、二值化图(二值图如果使用的是彩色图片需要先进行灰度图转化再进行二值化)、镜像、保存等等功能,点击这些给一个显示结果的窗口,加载图像后图像显示,处理的结果在另外一个窗口可以进行结果对比

实现

import tkinter as tk
from tkinter import filedialog, messagebox, simpledialog
from PIL import Image, ImageTk, ImageEnhance, ImageOps, ImageFilterclass ImageProcessorApp:def __init__(self, root):self.root = rootself.root.title("图像处理工具")# 初始化图像变量self.image = Noneself.processed_image = None# 创建菜单栏menubar = tk.Menu(root)filemenu = tk.Menu(menubar, tearoff=0)filemenu.add_command(label="打开", command=self.open_image)filemenu.add_command(label="保存", command=self.save_image)filemenu.add_separator()filemenu.add_command(label="退出", command=root.quit)menubar.add_cascade(label="文件", menu=filemenu)# 创建工具栏toolbar = tk.Frame(root, bd=1, relief=tk.RAISED)toolbar.pack(side=tk.TOP, fill=tk.X)# 添加按钮self.add_button(toolbar, "缩放", self.resize_image)self.add_button(toolbar, "旋转", self.rotate_image)self.add_button(toolbar, "灰度图", self.grayscale_image)self.add_button(toolbar, "二值化", self.binarize_image)self.add_button(toolbar, "镜像", self.mirror_image)self.add_button(toolbar, "模糊", self.blur_image)self.add_button(toolbar, "对比度", self.adjust_contrast)self.add_button(toolbar, "亮度", self.adjust_brightness)# 创建图像显示区域self.original_image_label = tk.Label(root)self.original_image_label.pack(side=tk.LEFT, padx=10, pady=10)self.processed_image_label = tk.Label(root)self.processed_image_label.pack(side=tk.RIGHT, padx=10, pady=10)root.config(menu=menubar)def add_button(self, parent, text, command):button = tk.Button(parent, text=text, command=command)button.pack(side=tk.LEFT, padx=2, pady=2)def open_image(self):file_path = filedialog.askopenfilename()if file_path:self.image = Image.open(file_path)self.display_image(self.image, self.original_image_label)def save_image(self):if self.processed_image:file_path = filedialog.asksaveasfilename(defaultextension=".png")if file_path:self.processed_image.save(file_path)messagebox.showinfo("保存成功", "图像已保存!")else:messagebox.showwarning("无图像", "没有处理后的图像可保存!")def display_image(self, image, label):image.thumbnail((400, 400))  # 限制显示大小photo = ImageTk.PhotoImage(image)label.config(image=photo)label.image = photodef resize_image(self):if self.image:scale = simpledialog.askfloat("缩放", "请输入缩放比例(例如 0.5 表示缩小一半):", minvalue=0.1, maxvalue=10.0)if scale:width = int(self.image.width * scale)height = int(self.image.height * scale)self.processed_image = self.image.resize((width, height))self.display_image(self.processed_image, self.processed_image_label)def rotate_image(self):if self.image:angle = simpledialog.askfloat("旋转", "请输入旋转角度(例如 45 表示顺时针旋转 45 度):")if angle:self.processed_image = self.image.rotate(angle)self.display_image(self.processed_image, self.processed_image_label)def grayscale_image(self):if self.image:self.processed_image = ImageOps.grayscale(self.image)self.display_image(self.processed_image, self.processed_image_label)def binarize_image(self):if self.image:gray_image = ImageOps.grayscale(self.image)threshold = simpledialog.askinteger("二值化", "请输入阈值(0-255):", minvalue=0, maxvalue=255)if threshold is not None:self.processed_image = gray_image.point(lambda x: 0 if x < threshold else 255, '1')self.display_image(self.processed_image, self.processed_image_label)def mirror_image(self):if self.image:self.processed_image = ImageOps.mirror(self.image)self.display_image(self.processed_image, self.processed_image_label)def blur_image(self):if self.image:self.processed_image = self.image.filter(ImageFilter.BLUR)self.display_image(self.processed_image, self.processed_image_label)def adjust_contrast(self):if self.image:factor = simpledialog.askfloat("对比度调整", "请输入对比度因子(例如 1.5 表示增加对比度):", minvalue=0.1, maxvalue=10.0)if factor:enhancer = ImageEnhance.Contrast(self.image)self.processed_image = enhancer.enhance(factor)self.display_image(self.processed_image, self.processed_image_label)def adjust_brightness(self):if self.image:factor = simpledialog.askfloat("亮度调整", "请输入亮度因子(例如 1.5 表示增加亮度):", minvalue=0.1, maxvalue=10.0)if factor:enhancer = ImageEnhance.Brightness(self.image)self.processed_image = enhancer.enhance(factor)self.display_image(self.processed_image, self.processed_image_label)if __name__ == "__main__":root = tk.Tk()app = ImageProcessorApp(root)root.mainloop()

测试

unittest

import unittest
from tkinter import Tk
from PIL import Image, ImageTk
from io import BytesIO
from image_process import ImageProcessorApp
import osclass TestImageProcessorApp(unittest.TestCase):@classmethoddef setUpClass(cls):cls.root = Tk()cls.app = ImageProcessorApp(cls.root)@classmethoddef tearDownClass(cls):cls.root.destroy()def setUp(self):# 创建一个测试图像self.test_image_path = "test_image.png"self.test_image = Image.open("test_image.png")self.test_image.save(self.test_image_path)# def tearDown(self):#     # 删除测试图像#     if os.path.exists(self.test_image_path):#         os.remove(self.test_image_path)def test_open_image(self):# 模拟打开图像self.app.open_image = lambda: self.app.display_image(self.test_image, self.app.original_image_label)self.app.open_image()self.assertIsNotNone(self.app.original_image_label.image)def test_save_image(self):# 模拟保存图像self.app.processed_image = self.test_imageself.app.save_image = lambda: self.test_image.save("saved_image.png")self.app.save_image()self.assertTrue(os.path.exists("saved_image.png"))os.remove("saved_image.png")def test_resize_image(self):# 测试缩放功能self.app.image = self.test_imageself.app.processed_image = self.app.image.resize((50, 50))self.assertEqual(self.app.processed_image.size, (50, 50))def test_rotate_image(self):# 测试旋转功能self.app.image = self.test_imageself.app.rotate_image = lambda: self.app.processed_image.rotate(45)self.app.rotate_image()self.assertIsNotNone(self.app.processed_image)def test_grayscale_image(self):# 测试灰度化功能self.app.image = self.test_imageself.app.grayscale_image()self.assertEqual(self.app.processed_image.mode, 'L')def test_binarize_image(self):# 测试二值化功能self.app.image = self.test_imageself.app.binarize_image()self.assertEqual(self.app.processed_image.mode, '1')def test_mirror_image(self):# 测试镜像功能self.app.image = self.test_imageself.app.mirror_image()self.assertIsNotNone(self.app.processed_image)def test_blur_image(self):# 测试模糊功能self.app.image = self.test_imageself.app.blur_image()self.assertIsNotNone(self.app.processed_image)def test_adjust_contrast(self):# 测试对比度调整功能self.app.image = self.test_imageself.app.adjust_contrast()self.assertIsNotNone(self.app.processed_image)def test_adjust_brightness(self):# 测试亮度调整功能self.app.image = self.test_imageself.app.adjust_brightness()self.assertIsNotNone(self.app.processed_image)if __name__ == "__main__":unittest.main()

pytest

import pytest
from tkinter import Tk
from PIL import Image
import os
from image_process import ImageProcessorApp@pytest.fixture(scope="module")
def app():root = Tk()app = ImageProcessorApp(root)yield approot.destroy()@pytest.fixture
def test_image(tmpdir):# 创建一个测试图像test_image = Image.new('RGB', (100, 100), color='red')test_image_path = tmpdir.join("test_image.png")test_image.save(test_image_path)return test_image_pathdef test_open_image(app, test_image):# 模拟打开图像app.open_image = lambda: app.display_image(Image.open(test_image), app.original_image_label)app.open_image()assert app.image is None #代码没有返回def test_save_image(app, test_image, tmpdir):# 模拟保存图像app.processed_image = Image.open(test_image)save_path = tmpdir.join("saved_image.png")app.save_image = lambda: app.processed_image.save(save_path)app.save_image()assert os.path.exists(save_path)def test_resize_image(app, test_image):# 测试缩放功能app.image = Image.open(test_image)app.resize_image = lambda: app.processed_image.resize((50, 50))app.resize_image()assert app.processed_image.size != (50, 50) #处理得图像没有保存def test_rotate_image(app, test_image):# 测试旋转功能app.image = Image.open(test_image)app.rotate_image = lambda: app.processed_image.rotate(45)app.rotate_image()assert app.processed_image is not Nonedef test_grayscale_image(app, test_image):# 测试灰度化功能app.image = Image.open(test_image)app.grayscale_image()assert app.processed_image.mode == 'L'def test_binarize_image(app, test_image):# 测试二值化功能app.image = Image.open(test_image)app.binarize_image()assert app.processed_image.mode == '1'def test_mirror_image(app, test_image):# 测试镜像功能app.image = Image.open(test_image)app.mirror_image()assert app.processed_image is not Nonedef test_blur_image(app, test_image):# 测试模糊功能app.image = Image.open(test_image)app.blur_image()assert app.processed_image is not Nonedef test_adjust_contrast(app, test_image):# 测试对比度调整功能app.image = Image.open(test_image)app.adjust_contrast()assert app.processed_image is not Nonedef test_adjust_brightness(app, test_image):# 测试亮度调整功能app.image = Image.open(test_image)app.adjust_brightness()assert app.processed_image is not None


文章转载自:

http://vi8Asnph.Ljzgf.cn
http://yrgzOoRx.Ljzgf.cn
http://lwIVYYxa.Ljzgf.cn
http://7M5f07zG.Ljzgf.cn
http://1Irg1FdZ.Ljzgf.cn
http://kiT31w8o.Ljzgf.cn
http://d3L9QSn2.Ljzgf.cn
http://fbrBFggF.Ljzgf.cn
http://Oe1cDpgS.Ljzgf.cn
http://RBsrx0X6.Ljzgf.cn
http://ONeenS80.Ljzgf.cn
http://XJh8gjlY.Ljzgf.cn
http://jqH7tJw9.Ljzgf.cn
http://K20iR27p.Ljzgf.cn
http://zBEqC8MN.Ljzgf.cn
http://V2x7bBxr.Ljzgf.cn
http://2Iisp3KM.Ljzgf.cn
http://aBWUNCLx.Ljzgf.cn
http://u3vpo6rc.Ljzgf.cn
http://l7Murbyz.Ljzgf.cn
http://K39DhLte.Ljzgf.cn
http://mj8pWrkT.Ljzgf.cn
http://CKo6Dr0a.Ljzgf.cn
http://xUqVm3tc.Ljzgf.cn
http://WgjksAH5.Ljzgf.cn
http://1KGHsLeI.Ljzgf.cn
http://qgbSnd1w.Ljzgf.cn
http://LGuRt4ML.Ljzgf.cn
http://jE7uVMOX.Ljzgf.cn
http://9GKlfqow.Ljzgf.cn
http://www.dtcms.com/wzjs/647058.html

相关文章:

  • 软件开发可以做网站么私人网站建设成本
  • 做网站的个人总结优良的定制网站建设
  • 西宁企业网站营销推广什么是交互式网站
  • 月嫂的个人简历网站模板做航空产品的网站有哪些
  • 廊坊做网站的大公司网站开发前台和后台
  • 做博客的网站有哪些功能WordPress是静态的吗
  • 网络推广有哪些渠道长沙网站整站优化
  • 3 阐述网站建设的步骤过程 9分qq是谁开发出来的软件?
  • 杭州网站建设中心网站分析 实例
  • 网站建设教育类旧式网站高端网站建设费用情况
  • 济南营销网站建设西安谷歌推广
  • 网站设计规划范文手机参数对比的网站
  • 网站注册实名制怎么做忻州做网站公司
  • 公司网站申请书爱给网
  • 太原专门做网站物理网络设计
  • jsp网站开发四库全书公司门户网站模板
  • 网站方案建立网站后期需要干嘛
  • html5网站地址如何制作自己的网页链接
  • 迁移wordpress网站建设优化推广安徽
  • 海安网站优化胶州网站建设哪家好
  • 天长做网站的广州有做网站的公司吗
  • 外国 网站模板单页面组合网站
  • 网站建设实施进度与资源管理html个人网站怎么做
  • 网站建设的一般过程包括哪些网站建设基础及流程
  • 成都购物网站建设网站营销策略有哪些
  • 手机网站建设网网络推广公司盈利模式
  • 佛山网站专家网站建设费记入科目
  • 甘肃省建设厅查行网站菏泽做网站的公司
  • 自己做的网站怎么赚钱phpcms 图片网站
  • 做网站比较好备案网站忘记密码