色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

解鎖垂直美學(xué)!如何在你的Raspberry Pi相框中僅顯示豎版照片!

上海晶珩電子科技有限公司 ? 2025-03-25 09:33 ? 次閱讀

如何在你的Raspberry Pi相框中僅顯示豎幅照片

這篇文章可能只針對一小部分讀者,但這就是像這樣的博客的樂趣所在:你可以深入探索各種極客話題。

已在搭載 Bookworm Wayland 的 Raspberry Pi 5(2024年11月)上測試。

Pi3D PictureFrame允許在相框?yàn)闄M屏方向時(shí)并排顯示兩張豎幅模式的照片。

因此,我想有一個(gè)簡單的功能會很不錯(cuò),這個(gè)功能可以自動將你添加到圖片文件夾中的圖像按豎幅、橫幅和正方形分類,這樣你就可以選擇只顯示其中一種。

同樣,當(dāng)你將你的數(shù)碼相框以豎屏方向安裝時(shí),只顯示豎幅照片會更好。以豎屏模式顯示的橫幅照片看起來會非常小。

因此,這里有一個(gè)Python腳本,它可以對你放入圖片文件夾的照片進(jìn)行分類,以及一個(gè)在啟動時(shí)運(yùn)行以保持腳本運(yùn)行的服務(wù)。

然后,你可以使用 Home Assistant 或通過MQTT或HTTP命令選擇只顯示豎幅目錄。如果你的相框可以旋轉(zhuǎn)為豎屏或橫屏方向,那就太棒了。

用于分類的Python腳本

使用像Sublime這樣的編輯器或以下命令創(chuàng)建一個(gè)腳本:

sudo nano sort.py

然后將以下文本粘貼到文件中:

import osimport shutilimport timefrom PIL import Image, UnidentifiedImageErrorfrom watchdog.observers import Observerfrom watchdog.events import FileSystemEventHandler
# Define pathspictures_folder = "/path/to/Pictures"portrait_folder = os.path.join(pictures_folder, "Portrait Orientation")landscape_folder = os.path.join(pictures_folder, "Landscape Orientation")square_folder = os.path.join(pictures_folder, "Square Images")
# Create folders if they don't existos.makedirs(portrait_folder, exist_ok=True)os.makedirs(landscape_folder, exist_ok=True)os.makedirs(square_folder, exist_ok=True)
# Set to track skipped filesskipped_files = set()
def is_file_complete(file_path, wait_time=1): """ Check if a file is fully copied by comparing its size multiple times with a delay. """ for _ in range(3): # Check 3 times to ensure completion initial_size = os.path.getsize(file_path) time.sleep(wait_time) final_size = os.path.getsize(file_path) if initial_size == final_size: return True return False
def classify_image(file_path): try: if is_file_complete(file_path): with Image.open(file_path) as img: width, height = img.size if width > height: destination = landscape_folder elif height > width: destination = portrait_folder else: destination = square_folder shutil.move(file_path, destination) print(f"Moved {file_path} to {destination}") # Remove from skipped files if it was previously skipped if file_path in skipped_files: skipped_files.remove(file_path) else: print(f"File {file_path} is still being copied. Adding to skipped list.") skipped_files.add(file_path) except UnidentifiedImageError: print(f"Cannot identify image file {file_path}. Adding to skipped list.") skipped_files.add(file_path) except Exception as e: print(f"Error processing {file_path}: {e}")
def classify_images_in_folder(): for filename in os.listdir(pictures_folder): file_path = os.path.join(pictures_folder, filename) if os.path.isfile(file_path) and filename.lower().endswith(".jpg"): classify_image(file_path)
class ImageHandler(FileSystemEventHandler): def on_created(self, event): if event.is_directory: return if event.src_path.lower().endswith(".jpg"): classify_image(event.src_path)
def on_moved(self, event): if not event.is_directory and event.dest_path.lower().endswith(".jpg"): classify_image(event.dest_path)
def on_modified(self, event): if not event.is_directory and event.src_path.lower().endswith(".jpg"): classify_image(event.src_path)
def retry_skipped_files(): """ Retry classifying files that were previously skipped due to incomplete copying or unidentifiable errors. """ for file_path in list(skipped_files): # Iterate over a copy of the set if os.path.exists(file_path): print(f"Retrying {file_path}") classify_image(file_path)
if __name__ == "__main__": # Initial classification classify_images_in_folder()
# Set up the observer observer = Observer() event_handler = ImageHandler() observer.schedule(event_handler, path=pictures_folder, recursive=False) observer.start()
try: while True: retry_skipped_files() # Periodically retry skipped files time.sleep(5) # Adjust this sleep time as needed except KeyboardInterrupt: observer.stop() observer.join()

保存并關(guān)閉。

使文件可執(zhí)行:

chmod +x /home/pi/sort.py

安裝watchdog

Python有一個(gè)很棒的功能,當(dāng)在目錄中檢測到新文件時(shí),它會觸發(fā)一個(gè)命令。

但要在腳本中使用它,你首先需要安裝它:

source venv_picframe/bin/activatepip install pillow watchdog

現(xiàn)在,你可以通過輸入以下命令來測試腳本是否工作:

python sort.py

創(chuàng)建系統(tǒng)服務(wù)

為了讓腳本始終在后臺運(yùn)行,為腳本創(chuàng)建一個(gè)系統(tǒng)服務(wù)文件:

sudo nano /etc/systemd/system/sort_pictures.service

將以下內(nèi)容粘貼到文件中:

[Unit]Description=Sort Pictures ServiceAfter=network.target

[Service]ExecStart=/home/pi/venv_picframe/bin/python /home/pi/sort.pyWorkingDirectory=/home/piRestart=alwaysUser=pi

[Install]WantedBy=multi-user.target

保存并關(guān)閉。

然后逐行輸入以下命令以激活服務(wù):

sudo systemctl daemon-reloadsudo systemctl enable sort_pictures.servicesudo systemctl start sort_pictures.service

使用以下命令檢查服務(wù)的狀態(tài),以確認(rèn)它正在運(yùn)行:

sudo systemctl status sort_pictures.service

現(xiàn)在,將一些圖像放入你的圖片文件夾中。

腳本應(yīng)該根據(jù)它們的尺寸將它們移動到指定的子目錄中。

豎幅選項(xiàng)

現(xiàn)在你可以嘗試兩件事。

一是如果可能的話,更改相框的掛載方式為豎屏,并更改Pi3D PictureFrame中的設(shè)置。按照“如何在Raspberry Pi數(shù)碼相框中使用豎屏方向”中的說明進(jìn)行操作。

如何將你的樹莓派數(shù)字相框設(shè)置為縱向使用:https://www.thedigitalpictureframe.com/raspberry-pi-digital-picture-frame-portrait-orientation/如果你不能這樣做,你可以通過更改configuration.yaml中的這一行來嘗試豎幅對:

portrait_pairs: True

要僅顯示豎向(縱向)的照片,您可以在configuration.yaml中更改默認(rèn)的“Pictures”目錄,或者如果您已安裝Home Assistant,則可以通過它來設(shè)置目錄。

或者,您也可以暫時(shí)從主“Pictures”目錄中移除“Landscape”(橫向)和“Square”(方形)目錄。祝您使用愉快!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4820

    瀏覽量

    85492
  • Raspberry Pi
    +關(guān)注

    關(guān)注

    2

    文章

    613

    瀏覽量

    22545
收藏 0人收藏

    評論

    相關(guān)推薦

    何在Raspberry Pi上安裝TensorFlow

     在本教程,我們將學(xué)習(xí)如何在 Raspberry Pi 上安裝 TensorFlow,并將展示一些在預(yù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)上進(jìn)行簡單圖像分類的示例。
    發(fā)表于 09-01 16:35 ?2352次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>上安裝TensorFlow

    何在Raspbian上設(shè)置沒有顯示器和鍵盤的Raspberry Pi

    在本教程,我們將了解如何在新安裝的 Raspbian 上設(shè)置沒有顯示器和鍵盤的 Raspberry Pi
    發(fā)表于 09-22 16:31 ?1901次閱讀
    如<b class='flag-5'>何在</b>Raspbian上設(shè)置沒有<b class='flag-5'>顯示</b>器和鍵盤的<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>

    如何制作Raspberry Pi樹莓派的SD卡

    :raspberryi) 現(xiàn)在你會看到提示符:pi@raspberry ~ $j) 想要進(jìn)入圖形界面輸入:startxk) 你會發(fā)現(xiàn)你已經(jīng)進(jìn)入了一個(gè)即熟悉又不同的桌面環(huán)境l) 好了,發(fā)現(xiàn)你已經(jīng)制作好樹莓派的SD卡了。
    發(fā)表于 06-30 23:53

    極致小巧的樹莓派新成員, 5 美金的 Raspberry Pi Zero 登場

    到 25 美金,不過他們?nèi)韵M芨M(jìn)一步壓低價(jià)格,于是在稍早樹莓派家族的新成員 Raspberry Pi Zero 亮相,將價(jià)格定在 5 美金。新聞來源: Raspberry
    發(fā)表于 11-26 22:46

    Raspberry Pi 3試用體驗(yàn)】試用進(jìn)程大匯總(2016.6.21已更新)

    /jishu_583079_1_1.html5、【Raspberry Pi 3試用體驗(yàn)】+ 中文顯示及輸入+百度云傳輸(4.22)https://bbs.elecfans.com/jishu_583519_1_1.html6
    發(fā)表于 04-14 21:32

    Raspberry Pi 3和3 b +上的Android Pie 9.0

    Android Pie 9.0。在這個(gè)視頻,我將向您展示如何在最新的Android版本的raspberry pi 3上安裝android 9 Pie。 我在此視頻中使用的設(shè)備:
    發(fā)表于 09-29 14:28

    使用raspberry pi Pico的原因

    使用raspberry pi Pico的原因在硬件產(chǎn)品(單片機(jī))的開發(fā)我們往往需要借助一些額外的儀器/設(shè)備進(jìn)行產(chǎn)品的輔助測試, 假設(shè)我們需要一個(gè)IO+ADC類型輔助設(shè)備, 以往的做法是 原理圖
    發(fā)表于 02-07 09:16

    raspberry_pi各版本差別

    raspberry pi 各版本差別,對比Raspberry Pi Model B+、Raspberry
    發(fā)表于 01-06 11:12 ?0次下載

    工業(yè)環(huán)境Raspberry PI和Arduino

    Raspberry PI和Arduino板是快速電子成型和家庭DIY應(yīng)用中非常有名的設(shè)備,不過他們在工業(yè)環(huán)境的功能性和靈活性在很大程度上還有待評估。Raspberry
    發(fā)表于 06-23 11:32 ?4556次閱讀

    raspberry pi官網(wǎng)

    Raspberry Pi 宣布推出新的鏡像實(shí)用程序 Raspberry Pi Imager,以提供一種更簡單的方法,將操作系統(tǒng)輕松鏡像到 microSD 上。
    的頭像 發(fā)表于 03-07 10:16 ?6282次閱讀

    何在Raspberry Pi 3上安裝OpenCV4庫

    今天我們將學(xué)習(xí)如何在 Raspberry Pi 3 上安裝 OpenCV4 庫,以便我們可以將其用于計(jì)算機(jī)視覺應(yīng)用程序。這將允許 OpenCV 在像 Pi 這樣的便攜式設(shè)備上運(yùn)行,從而
    的頭像 發(fā)表于 09-08 16:09 ?1723次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 3上安裝OpenCV4庫

    何在Raspberry Pi Pico中使用OLED顯示

    電子發(fā)燒友網(wǎng)站提供《如何在Raspberry Pi Pico中使用OLED顯示器.zip》資料免費(fèi)下載
    發(fā)表于 10-18 09:15 ?4次下載
    如<b class='flag-5'>何在</b><b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> Pico中使用OLED<b class='flag-5'>顯示</b>器

    使用Raspberry Pi 3自制智能相框和日歷—第二部分

    本教程的第二部分將帶您完成構(gòu)建智能相框和日歷的框架、連接PIR運(yùn)動傳感器和控制相框幻燈片顯示向日歷顯示的過渡這些步驟。該項(xiàng)目將繼續(xù)使用本教程的使用R
    的頭像 發(fā)表于 02-24 17:51 ?1532次閱讀
    使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 3自制智能<b class='flag-5'>相框</b>和日歷—第二部分

    何在Raspberry Pi零2W上阻止帶有Pi孔的廣告

    電子發(fā)燒友網(wǎng)站提供《如何在Raspberry Pi零2W上阻止帶有Pi孔的廣告.zip》資料免費(fèi)下載
    發(fā)表于 06-14 10:38 ?0次下載
    如<b class='flag-5'>何在</b><b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>零2W上阻止帶有<b class='flag-5'>Pi</b>孔的廣告

    Raspberry Pi添加15美元的顯示

    電子發(fā)燒友網(wǎng)站提供《為Raspberry Pi添加15美元的顯示器.zip》資料免費(fèi)下載
    發(fā)表于 06-20 11:04 ?0次下載
    為<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>添加15美元的<b class='flag-5'>顯示</b>器
    主站蜘蛛池模板: 亚洲日韩中文字幕区 | 漂亮的保姆3集电影免费观看中文 | 暖暖日本在线手机免费完整版 | 暖暖 日本 视频 在线观看免费 | 免费国产午夜理论不卡 | 99精品电影一区二区免费看 | 免费夜色污私人影院网站 | 亚洲精品美女久久久久99 | 国模大胆一区二区三区 | 国产-第1页-浮力影院 | 少妇高潮久久久久7777 | 97超级碰久久久久香蕉人人 | 欧美日韩一二区旡码高清在线 | 暖暖视频免费观看视频 | 混乱家庭电影完整版在线看 | 国产免费69成人精品视频 | 国产精品色欲AV亚洲三区软件 | 精品无码国产污污污免费网站2 | 野花日本大全免费观看3中文版 | 亚洲AV久久无码高潮喷水 | 中文字幕一区二区三区在线播放 | 日本无码色哟哟婷婷最新网站 | 国产精品AV视频一二三区 | 小莹的性荡生活40章 | 欧美极限变态扩张video | 羞羞漫画视频 | 久久re这里精品23 | 无限资源网免费看 | 一级做a爰片久久毛片潮喷动漫 | 伊人久久影院 | 国产露脸A片国语露对白 | 67194成在线观看免费 | 玩弄放荡人妻一区二区三区 | 小SAO货叫大声点妓女 | 日本黄色成年人免费观看 | 九九精品久久 | 在线观看日本免费 | 月夜直播视频免费观看 | 2019伊人查蕉在线观看 | 99精品免费久久久久久久久蜜桃 | 色偷偷伊人 |

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品