社区导航

 

搜索
查看: 439|回复: 3

[讨论] 使用PyPortal展示克利夫兰艺术博物馆的艺术品

[复制链接]

1万

TA的帖子

14

TA的资源

版主

Rank: 6Rank: 6

测评达人

发表于 2020-2-5 10:48 | 显示全部楼层 |阅读模式

image.png

介绍

如今,不仅在博物馆内,在室外都在扩大公众对其艺术收藏品的访问。数字化举措将曾经被归入博物馆范围的艺术品带给了21世纪的全球观众。这些现代博物馆已实质上成为新的内容提供商。就像提供视频和音乐内容的现代公司Netflix和Pandora一样,博物馆通过收集绘画,照片,珠宝和其他媒体而成为自己的内容提供商。对这些收藏进行数字化处理并使其可公开获取,将这些材料吸引给全球读者。

克利夫兰艺术博物馆就是此类博物馆中的佼佼者。 

克利夫兰艺术博物馆

克利夫兰艺术博物馆(CMA)位于俄亥俄州克利夫兰,拥有来自世界各地的61,000多件艺术品。它成立于1913年,以其拥有的亚洲和埃及艺术品而享誉国际。2018年有超过770,000人参观了博物馆。CMA于2019年1月23日宣布,其藏品中超过31,000张艺术品的数字图像将在公共领域提供。收藏品中包含数十种艺术类型,包括绘画,素描,照片,硬币和珠宝。所有这些图像都可以通过Creative Commons Zero(CC0)许可获得,该许可允许人们共享,协作,重新混合和重用集合中的图像以用于商业和非商业用途。CMA还创建了一个免费的API,该API允许程序轻松检索有关每个图像的信息。
 

图片


使用Art PyPortal框架

该项目使用在PyPortal上运行的CircuitPython访问CMA API。它使用API​​从集合中选择一个随机项目。它使用Adafruit IO图像转换服务将来自集合的JPEG图像转换并重新调整为BMP图像,并调整为PyPortal的尺寸。最后,将转换后的图像下载到PyPortal进行显示。PyPortal的一项新功能允许正确缩放人像图像,这是此项目的一项重要功能。

给设备加电时,PyPortal在连接到互联网并检索其第一张图像时会显示一个Cleveland艺术博物馆横幅。PyPortal从集合中可用的31,000多种图像中检索图像,并将其标题和标题显示在屏幕底部。

默认情况下,显示屏每5分钟自动更新一次(可以在代码中更改),这需要3个月(24x7)的时间才能显示全部图像。您也可以通过使用PyPortal的触摸屏触摸屏幕上的任意位置来手动更新显示。触摸屏幕时,显示屏右下角将出现一个红色圆圈,表示当前正在更新屏幕。在通过自动或手动更新进行屏幕更新时,触摸屏将处于非活动状态。请注意,Adafruit IO图像转换器服务受速率限制,因此图像之间最短间隔时间是一分钟。

图片


更多内容请参考:
https://learn.adafruit.com/cleveland-mu ... e/overview

评分

1

查看全部评分



回复

使用道具 举报

1万

TA的帖子

14

TA的资源

版主

Rank: 6Rank: 6

测评达人

 楼主| 发表于 2020-2-5 10:49 | 显示全部楼层

运行程序前,需要先安装下面的库:

 

import time
import random
import board
from adafruit_pyportal import PyPortal
from adafruit_display_shapes.circle import Circle

WIDTH = board.DISPLAY.width
HEIGHT = board.DISPLAY.height

#pylint: disable=line-too-long

# these lines show the entire collection
APIURL = "https://openaccess-api.clevelandart.org/api/artworks?cc0=1&has_image=1&indent=2&limit=1&skip="
IMAGECOUNT = 31954

# uncomment these lines to show just paintings
# APIURL = "https://openaccess-api.clevelandart.org/api/artworks?cc0=1&has_image=1&indent=2&limit=1&type=Painting&skip="
# IMAGECOUNT = 3223

BACKGROUND_FILE = "/background.bmp"
if WIDTH > 320:
    BACKGROUND_FILE = "/background_480.bmp"

pyportal = PyPortal(default_bg=BACKGROUND_FILE,
                    image_json_path=["data", 0, "images", "web", "url"],
                    image_dim_json_path=(["data", 0, "images", "web", "width"],
                                         ["data", 0, "images", "web", "height"]),
                    image_resize=(WIDTH, HEIGHT - 15),
                    image_position=(0, 0),
                    text_font="/fonts/OpenSans-9.bdf",
                    json_path=["data", 0, "title"],
                    text_position=(4, HEIGHT - 9),
                    text_color=0xFFFFFF)

circle = Circle(WIDTH - 8, HEIGHT - 7, 5, fill=0)
pyportal.splash.append(circle)
loopcount = 0
errorcount = 0
while True:
    response = None
    try:
        circle.fill = 0xFF0000
        itemid = random.randint(1, IMAGECOUNT)
        # itemid = 20 # portrait mode example
        # itemid = 21 # landscape mode example
        print("retrieving url:", APIURL + str(itemid))
        response = pyportal.fetch(APIURL + str(itemid))
        circle.fill = 0
        print("Response is", response)
        loopcount = loopcount + 1

    except (RuntimeError, KeyError, TypeError) as e:
        print("An error occured, retrying! -", e)
        print("loop counter:", loopcount)
        assert errorcount < 20, "Too many errors, stopping"
        errorcount = errorcount + 1
        time.sleep(60)
        continue

    errorcount = 0
    stamp = time.monotonic()
    # wait 5 minutes before getting again
    while (time.monotonic() - stamp) < (5*60):
        # or, if they touch the screen, fetch immediately!
        if pyportal.touchscreen.touch_point:
            break


回复

使用道具 举报

23

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2020-3-7 22:04 | 显示全部楼层

感谢楼主。但是这个服务器的速度实在受不了,有什么好办法吗?

点评

原因大家都知道,国外很多网站都这样,包括github、aws。  详情 回复 发表于 2020-3-8 10:07


回复

使用道具 举报

1万

TA的帖子

14

TA的资源

版主

Rank: 6Rank: 6

测评达人

 楼主| 发表于 2020-3-8 10:07 | 显示全部楼层
cuter_2000 发表于 2020-3-7 22:04 感谢楼主。但是这个服务器的速度实在受不了,有什么好办法吗?

原因大家都知道,国外很多网站都这样,包括github、aws。



回复

使用道具 举报

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

关闭

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

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-5-31 23:52 , Processed in 0.185812 second(s), 25 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表