在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

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

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

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

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

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

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

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

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

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

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

因此,這里有一個(gè)Python腳本,它可以對(duì)你放入圖片文件夾的照片進(jìn)行分類,以及一個(gè)在啟動(dòng)時(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)在目錄中檢測(cè)到新文件時(shí),它會(huì)觸發(fā)一個(gè)命令。

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

source venv_picframe/bin/activatepip install pillow watchdog

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

python sort.py

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

為了讓腳本始終在后臺(tái)運(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ù)它們的尺寸將它們移動(dòng)到指定的子目錄中。

豎幅選項(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中的這一行來嘗試豎幅對(duì):

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)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4820

    瀏覽量

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

    關(guān)注

    2

    文章

    613

    瀏覽量

    22547
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    何在Raspberry Pi上安裝TensorFlow

     在本教程,我們將學(xué)習(xí)如何在 Raspberry Pi 上安裝 TensorFlow,并將展示一些在預(yù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)上進(jìn)行簡(jiǎ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)在你會(huì)看到提示符:pi@raspberry ~ $j) 想要進(jìn)入圖形界面輸入:startxk) 你會(huì)發(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 登場(chǎng)

    到 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)品的輔助測(cè)試, 假設(shè)我們需要一個(gè)IO+ADC類型輔助設(shè)備, 以往的做法是 原理圖
    發(fā)表于 02-07 09:16

    raspberry_pi各版本差別

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

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

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

    raspberry pi官網(wǎng)

    Raspberry Pi 宣布推出新的鏡像實(shí)用程序 Raspberry Pi Imager,以提供一種更簡(jiǎn)單的方法,將操作系統(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 ?1724次閱讀
    如<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)動(dòng)傳感器和控制相框幻燈片顯示向日歷顯示的過渡這些步驟。該項(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>器
    主站蜘蛛池模板: 天堂亚洲网 | 欧美一级视频在线观看 | 欧美影欧美影院免费观看视频 | 中文字幕精品一区影音先锋 | 国产中文99视频在线观看 | 国产一区二区三区欧美精品 | 777精品视频| 色婷婷久久免费网站 | 在线观看免费视频一区 | 精品国产第一国产综合精品gif | 四虎网址大全 | 色老头在线视频 | 性xxx无遮挡| 免费黄色大片网站 | 久在草影院 | 国产h视频在线观看网站免费 | 日本理论在线 | 色多多免费在线观看 | 看视频免费网站 | 最近2018年中文字幕在线 | 日本黄色免费大片 | 亚洲区免费 | h在线观看视频 | 五月天婷婷精品视频 | 天天干影院 | 日本色片视频 | 一级毛片不收费 | 在线免费观看视频黄 | 国产三级精品视频 | xxxx性欧美极品另类 | 777kkk亚洲综合欧美色老头 | 四虎影永久地址www 四虎影永久在线观看精品 四虎影永久在线观看网址 四虎影院.com | 午夜精品久久久久久99热 | 美女网站在线观看视频18 | 成人精品久久 | 操xxx| 色色色色色色色色色色色色 | 中日韩免费视频 | 午夜激情福利 | 天天操天天摸天天碰 | 天天插天天插天天插 |