文章目录
-
- 前言
- PyQt5界面设计
-
- 使用Qt Designer绘制界面
- 视频部件插入小技巧
- 解码器下载
- 功能实现
-
- trace.moe API介绍与视频
- 使用Nuitka打包成exe文件
前言
喜欢看动漫的朋友们大概都能体会到一个难受的事情,就是在论坛或者群聊里面看到一张动漫截图,很想知道它的出处,但百度搜了一圈却也没有一个可靠结果,就很郁闷。今天就来带大家用Python做一个简单的“以图搜番”小应用。应用本身的实现不是很难的事情,其实就是调用别人的API接口来实现,主要目的还是通过这个案例来学习以下内容:
- 学习如何用PyQt5做用户交互界面(UI);
- 学习如何使用Nuitka打包程序为exe文件;
PyQt5界面设计
如果用 Python 语言开发 跨平台 的图形界面的程序,主要有3种选择:
-
Tkinter:基于Tk的Python库,这是Python官方采用的标准库,优点是作为Python标准库、稳定、发布程序较小,缺点是控件相对较少。
-
wxPython:基于wxWidgets的Python库,优点是控件比较丰富,缺点是稳定性相对差点、文档少、用户少。
-
PyQt5(或者PySide2):基于Qt 的Python库,优点是控件比较丰富、跨平台体验好、文档完善、用户多。缺点是库比较大,发布出来的程序比较大。
本教程使用的就是PyQt5,它是Digia的一套Qt5应用框架与python的结合,同时支持2.x和3.x。本教程使用的是3.x。Qt库由Riverbank Computing开发,是最强大的GUI库之一 ,官方 站:https://www.riverbankcomputing.com/software/pyqt/。
PyQt5是由一系列Python模块组成。超过620个类,6000函数和方法。能在诸如Unix、Windows和Mac OS等主流操作系统上运行。PyQt5有两种证书,GPL和商业证书。
安装方法:
使用Qt Designer绘制界面
在设计一个图形化界面的应用时,我们需要先绘制出其大致布局,可以在草稿纸上勾勒一下,然后通过PyQt5中的Qt Designer应用来设计,它的文件名叫,找不到位置可以在本地文件中搜索一下:
具体的Qt Designer基本使用方法我就不在这里展开了,如果你第一次用,可以参考这个入门视频教程:https://www.bilibili.com/video/BV1cJ411R7bP ,讲得还挺好,我就是跟着这个视频入门学习的。它的文字版教程在这里:http://www.python3.vip/tut/py/gui/qt_01/
视频部件插入小技巧
功能实现
trace.moe API介绍与视频
它背后的实现依靠的是大数据+基于内容的图像检索(Content-based image retrieval ,CBIR),“基于内容”意味着搜索分析图像的内容,而不是与图像相关的元数据,如关键字、标签或描述。术语“内容”在这个上下文中可能指的是颜色、形状、纹理或任何其他可以从图像本身衍生出来的信息。CBIR使用起来比较方便,因为它不需要标注信息,而纯粹依赖元数据的搜索依赖于标注的质量和完整性。wikipedia上有列出很多CBIR engines,trace.moe则使用了Lire。对于图像的描述,trace.moe则仅仅使用了颜色布局(Color Layout )。另一方面就是大数据,其背后的数据支撑为30096小时的视频内容(大约26亿帧),来自于3194部动画,大约18.1 TB大小。7.46亿帧索引(重复数据删除后),数据库大小为140 GB。具体实现细节可以参考:trace.moe slide和trace.moe github 项目。
如果你不关心实现细节,可以直接看下面的API接口使用。
返回一个json结果,内容如下:
得到这些内容后,就可以下载对应的视频片段:
当然,也不是每天无限制请求的,普通用户每天只能查询150次
import的系统库,使用python3x.dll来执行,其他自己实现的UI界面和数据库的连接以及函数和功能实现,需要加密(反编译)和快速反应的,用户的体验就在这里,这部分借助Nuitka来实现。
以下是Nuitka的关键命令段:
–nofollow-imports #所有的import全部不使用,交给python3x.dll执行
–follow-import-to=need #need为你需要编译成C/C++的py文件夹命名
——引用自:Python打包exe(32/64位)-Nuitka再下一城
第二步:调试阶段,逐个加入所需的轮子文件:
首先运行
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览210192 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!