如何自动将AI Studio中的GIF文件上载到CSDN?
Posted 卓晴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何自动将AI Studio中的GIF文件上载到CSDN?相关的知识,希望对你有一定的参考价值。
▲ 图1 旋转的数字
简 介: 本文给出了自动将AI Studio工作环境中的GIF目录下的动图图片完成压缩,下载并上载到CSDN的整个过程。给出了实现的详细代码。利用这个工具便可以完成更加丰富多彩的数据展示的功能。
关键词
: GIF,AISTudio,CSDN
§01 GIF文件
1.1 GIF文件简介
GIF文件 ,也被称为“动图”【Graphics Interchange Format】是由COmpuServe公司Wilhite于1987年开发的位图图像格式,采用了LZW无损数据压缩技术压缩GIF图像而又不降低视觉质量。现在被广泛应用在网页中表现动态变化的图像。
▲ 图1.1 GIF懂图形牧场变化的函数
巧妙应用动图及其压缩方式 可以用于传递更加丰佛的动态细节, 演示数据内部变化规律 , 将现象与数据之间协同展示 ,特别是 对于负载网络以及高维度数据形成多视角的展现 。
▲ 图1.2 展示SOFM网络变化过程
▲ 图1.3 显示3D动态曲线
利用 MATPLOTLIB 可以生成数据的一维、二维的图片,存储之后便可以通过相应的Python软件包形成GIF文件了。
1.2 Studio环境
AI Studio是 有百度提供的基于网页的云端人工智能实验环境。它为使用者提供了强大的算力环境。基于Notebook的编程调试环境也方便开发者搭建相应的算法。建立和消除环境对于用户本地计算机没有任何影响,大大方便开发者学习研究。
在AI Studio下生成的动态文件可以存储在本地的目录中,利用BML CodeLab提供的压缩下载命令可以方便下载到计算机本地,进行后期的处理。
但是,现在还没有找到AI Studio下动态下载文件的方法。 也许这是百度公司有意将选赢得功能进行了屏蔽。
那么如何能够自动完成相应的稳健的下载呢? 对于需要生成大量GIF图像的应用来说,手工下载显得不方便。
▲ 图1.2.1 AI Studio BML CodeLab编程界面
下面介绍了自动下载压缩文件的解决方案。
§02 自动下载文件
2.1 主要思路
2.1.1 自动下载文件
BML CodeLab允许是使用键盘右键给出文件的下载链接。利用这个链接,可以在Chrome浏览器的地址栏输入,自动完成文件的下载。
https://aistudio.baidu.com/ibjcpu2/user/262579/3390934/files/gif.zip?_xsrf=2%7C7bb56695%7C79552b127773c1eee41d78c4e29a4104%7C1641455345
▲ 图2.1.1 AI Studio查看文件下载链接
在浏览器地址栏输入下载链接之后形成自动下载对话框,这样就可以将AI Studio BML Codelab中的文件,特别是GIF压缩文件进行下载了。
▲ 图2.1.2 在浏览器地址栏输入下载链接之后形成自动下载对话框
2.1.2 压缩GIF文件
由于GIF文件包括有大量的图片,所以在下载之前需要将他们进行压缩打包,然后再使用上面的“自动下载”的方案完成文件的下载。
完成这个过程则是通过动态粘贴执行如下的端程序,利用Notebook程序的功能完成GIF闻见录的打包。
AIStudio_Title = 'BML CodeLab'
opstr = (
"import sys,os,math,time",
"sys.path.append('/home/aistudio/external-libraries')",
"import matplotlib.pyplot as plt",
"from numpy import *",
"import zipfile",
"filedim = os.listdir('/home/aistudio/GIF')",
"with zipfile.ZipFile('/home/aistudio/gif.zip', 'w') as zf:",
" for f in filedim:",
" if f.find('points') > 0: continue",
" fn = os.path.join('/home/aistudio/GIF', f)",
" zf.write(fn)",
)
clipboard.copy('\\r\\n'.join(opstr))
rect = tspgetwindowrect(AIStudio_Title)
pyautogui.click((rect[2] - 150), rect[1] + 320)
tspsendwindowkey(AIStudio_Title, "a", control=1, noreturn=1)
tspsendwindowkey(AIStudio_Title, "av", control=1, noreturn=1)
tspsendwindowkey(AIStudio_Title, "\\r", shift=1, noreturn=1)
time.sleep(.5)
2.1.3 解压缩生成GIF文件
对于下载到本地的ZIP文件,进行动态解压缩,然后在进行生成GIF文件。如果后面带有参数,则直接上载到CSDN网页中。
这部分的功能则有 zip2gif程序来完成。
2.2 自动下载文件程序
2.2.1 工作条件
为了可能够实现动图直接从AI Studio到CSDN,需要准备一下工作条件:
- 打开AI Studio,进入 BML CodeLab
- 对于/home/aistudio中的GIF.zip,获得其下载链接信息,并保存在TEASOFT的DOP中,
- 打开一个新的Chrome浏览器,不输入任何有效地址,它的Title为“新标签页”。
2.2.2 工作代码
自动下载Python程序为 zip2gif。在之前通过参数“.”表示自动将AI Studio工作目录中的GIF文件夹中的文件进行压缩下载,然后完成后面的动态解压缩生成GIF文件,并上载到CSDN。使用方法为:
zip2gif … 演示图片
下面就是将AI Studio GIF目录中的动图完成自动下载,生成GIF,上载到CSDN的效果。
▲ 图 演示动图上载到CSDN
(1)py程序代码
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# ZIP2GIF.PY -- by Dr. ZhuoQing 2021-12-17
#
# zip2gif num # process only head num file
# zip2gif #timespace # gif time space
# zip2gif cdpgargument #
# zip2gif * # Get all the select DOP into gif
# zip2gif . # Compress AI Studio GIF,download
#
# Note:
#============================================================
from headm import *
import zipfile
import shutil
import pyautogui
#------------------------------------------------------------
filename = r'D:\\Temp\\GIF.zip'
if not os.path.isfile(filename):
filename = r'C:\\Users\\SCW4000\\Downloads\\GIF.zip'
filename1 = filename
cdpgarg = ""
giftime = 0
#------------------------------------------------------------
if len(sys.argv) > 1:
if sys.argv[1][0] == '#':
giftime = int(sys.argv[1][1:])
sys.argv[1:] = sys.argv[2:]
#------------------------------------------------------------
AIStudio_Title = 'BML CodeLab'
if len(sys.argv) > 1:
if sys.argv[1][0] == '.':
if sys.argv[1] == '.':
sys.argv[1:] = sys.argv[2:]
else: sys.argv[1] = sys.argv[1][1:]
#----------------------------------------------------
opstr = (
"import sys,os,math,time",
"sys.path.append('/home/aistudio/external-libraries')",
"import matplotlib.pyplot as plt",
"from numpy import *",
"import zipfile",
"filedim = os.listdir('/home/aistudio/GIF')",
"with zipfile.ZipFile('/home/aistudio/gif.zip', 'w') as zf:",
" for f in filedim:",
" if f.find('points') > 0: continue",
" fn = os.path.join('/home/aistudio/GIF', f)",
" zf.write(fn)",
)
clipboard.copy('\\r\\n'.join(opstr))
rect = tspgetwindowrect(AIStudio_Title)
pyautogui.click((rect[2] - 150), rect[1] + 320)
tspsendwindowkey(AIStudio_Title, "a", control=1, noreturn=1)
tspsendwindowkey(AIStudio_Title, "av", control=1, noreturn=1)
tspsendwindowkey(AIStudio_Title, "\\r", shift=1, noreturn=1)
time.sleep(1)
#----------------------------------------------------
url_title = '新标签页'
url = 'https:' + tspstring2text('https:')
rect = tspgetwindowrect(url_title)
if sum(rect) == 0:
printf("Can not find %s window.\\a"%url_title)
exit()
clipboard.copy(url)
pyautogui.click((rect[0]+rect[2])//2, rect[1]+65)
tspsendwindowkey(url_title, "dd", alt=1, noreturn=1)
tspsendwindowkey(url_title, "v", control=1, noreturn=1)
tspsendwindowkey(url_title, "\\r")
saveas_title = "另存为"
for _ in range(5):
time.sleep(.5)
if sum(tspgetwindowrect(saveas_title)) != 0:
tspsendwindowkey(saveas_title, "s", alt=1)
break
clipboard.copy("")
time.sleep(2)
#------------------------------------------------------------
gifdir = r'd:\\temp\\GIF'
if not os.path.isdir(gifdir):
os.mkdir(gifdir)
else:
filedim = os.listdir(gifdir)
for s in filedim:
fn = os.path.join(gifdir, s)
if os.path.isfile(fn):
os.remove(fn)
#------------------------------------------------------------
if lenstudio5000如何上传plc程序
持续监视文件夹以将新创建 的文件从该文件夹上载到C#中的REST API