---
title: "Hranice soukromí"
slug: "hranice-soukromi"
section: "volna-tvorba"
date: 2024-02-01
thumbnail: "/images/hranice-soukromi-nahled.jpg"
thumbnailAlt: "Hranice soukromí"
excerpt: ""
draft: false
---

import MediaRow from "../../components/MediaRow.astro";

Vytvořil jsem jednoduchý program, kterému lze zadat jeden nebo více adresářů. Všechny je prohledá včetně jejich podadresářů a když narazí na nějaký obrázek (obrázkem zde myslím soubor, který končí příponou .jpg, .jpeg, .png, .tif, .tiff), jeho cestu přidá do množiny všech obrázků. Po dokončení prohledávání z nich vybere pouze jeden obrázek a ten zobrazí.  

Ke svému počítači jsem následně připojil všechny harddisky se zálohami fotografií, které jsem během života nasbíral (nyní obsahují přes 91 000 fotografií). Všechny harddisky jsem pak nastavil jako výchozí adresáře, ze kterých program vybírá obrázky. Z praktických důvodů bylo nezbytné zakázat výběr z některých adresářů, protože některé obsahovaly pouze data programů, jako např. jejich ikony. Po stisknutí klávesy ENTER program vybral náhodnou fotografii z mého života. Po opětovném stisknutí ENTER vybral program další fotografii, atd.…   

Z náhodně vybraných obrázků jsem vytvořil několik sérií, které na sebe navazovaly. Každá série začíná náhodným výběrem obrázku a pokračuje v náhodném vybírání dalších obrázků, dokud nenarazí na nějaký, který nechci zveřejnit. Tento poslední obrázek je v sérii prezentován rozostřený. Zajímalo mě, jaké fotografie způsobí ukončení sérií a proč. Ve většině případech to pro moje překvapení ukončila obava o soukromí ostatních lidí. V jiných případech to zase ukončily fotografie pracovních dokumentů, domovy ostatních lidí a můj vlastní domov, atd..   

Tímto projektem jsem zjistil, jak moc jsou hranice mého soukromí mlžné, pokud vůbec nějaké jsou. V určitém momentu jsem se ale musel rozhodnout, zda fotografii zveřejnit či nikoliv. Tato volba byla ale většinou dost složitá a nejednoznačná.  

**série 1:**  

<MediaRow
  items={[
    { type: "image", src: "/images/hranice-soukromi-obr-1.jpg", alt: "cenzurovaný obrázek" },
    { type: "empty" },
    { type: "empty" },
    { type: "empty" },
    { type: "empty" },
    { type: "empty" },
  ]}
/>

**série 2:**  

<MediaRow
  items={[
    { type: "image", src: "/images/hranice-soukromi-obr-2.jpg", alt: "sklenice vody" },
    { type: "image", src: "/images/hranice-soukromi-obr-3.jpg", alt: "text k výstavě" },
    { type: "image", src: "/images/hranice-soukromi-obr-4.jpg", alt: "termofotka cesty" },
    { type: "image", src: "/images/hranice-soukromi-obr-5.jpg", alt: "cesta vlakem" },
    { type: "image", src: "/images/hranice-soukromi-obr-6.jpg", alt: "šmouha na skle" },
    { type: "image", src: "/images/hranice-soukromi-obr-7.jpg", alt: "fotka obrazovky s CMD" },
  ]}
/>

<MediaRow
  items={[
    { type: "image", src: "/images/hranice-soukromi-obr-8.jpg", alt: "studentská výstava" },
    { type: "image", src: "/images/hranice-soukromi-obr-9.jpg", alt: "cenzurovaný obrázek" },
    { type: "empty" },
    { type: "empty" },
    { type: "empty" },
    { type: "empty" },
  ]}
/>

**série 3:**  

<MediaRow
  items={[
    { type: "image", src: "/images/hranice-soukromi-obr-10.jpg", alt: "kód na SMS jízdné" },
    { type: "image", src: "/images/hranice-soukromi-obr-11.jpg", alt: "skákající Masajové v Keni" },
    { type: "image", src: "/images/hranice-soukromi-obr-12.jpg", alt: "larva pod mikroskopem" },
    { type: "image", src: "/images/hranice-soukromi-obr-13.jpg", alt: "termofotka auta" },
    { type: "image", src: "/images/hranice-soukromi-obr-14.jpg", alt: "sochy robotů na výstavě" },
    { type: "image", src: "/images/hranice-soukromi-obr-15.jpg", alt: "cenzurovaný obrázek" },
  ]}
/>

**série 4:**  

<MediaRow
  items={[
    { type: "image", src: "/images/hranice-soukromi-obr-16.jpg", alt: "polarizovaná struktura pod mikroskopem" },
    { type: "image", src: "/images/hranice-soukromi-obr-17.jpg", alt: "Vojta Maur natáčí výstavu" },
    { type: "image", src: "/images/hranice-soukromi-obr-18.jpg", alt: "výstava Milana Maura" },
    { type: "image", src: "/images/hranice-soukromi-obr-19.jpg", alt: "leguán na Galapágách" },
    { type: "image", src: "/images/hranice-soukromi-obr-20.jpg", alt: "mléčné sklo" },
    { type: "image", src: "/images/hranice-soukromi-obr-21.jpg", alt: "buňka pod mikroskopem" },
  ]}
/>

<MediaRow
  items={[
    { type: "image", src: "/images/hranice-soukromi-obr-22.jpg", alt: "cenzurovaný obrázek" },
    { type: "empty" },
    { type: "empty" },
    { type: "empty" },
    { type: "empty" },
    { type: "empty" },
  ]}
/>

**série 5:**  

<MediaRow
  items={[
    { type: "image", src: "/images/hranice-soukromi-obr-23.jpg", alt: "cenzurovaný obrázek" },
    { type: "empty" },
    { type: "empty" },
    { type: "empty" },
    { type: "empty" },
    { type: "empty" },
  ]}
/>

**série 6:**  

<MediaRow
  items={[
    { type: "image", src: "/images/hranice-soukromi-obr-24.jpg", alt: "cenzurovaný obrázek" },
    { type: "empty" },
    { type: "empty" },
    { type: "empty" },
    { type: "empty" },
    { type: "empty" },
  ]}
/>

**série 7:**  

<MediaRow
  items={[
    { type: "image", src: "/images/hranice-soukromi-obr-25.jpg", alt: "cenzurovaný obrázek" },
    { type: "empty" },
    { type: "empty" },
    { type: "empty" },
    { type: "empty" },
    { type: "empty" },
  ]}
/>

**série 8:**  

<MediaRow
  items={[
    { type: "image", src: "/images/hranice-soukromi-obr-26.jpg", alt: "obraz na výstavě" },
    { type: "image", src: "/images/hranice-soukromi-obr-27.jpg", alt: "Vojta Maur na festivalu světla" },
    { type: "image", src: "/images/hranice-soukromi-obr-28.jpg", alt: "budovy v Mexiku" },
    { type: "image", src: "/images/hranice-soukromi-obr-29.jpg", alt: "cenzurovaný obrázek" },
    { type: "empty" },
    { type: "empty" },
  ]}
/>

**série 9:**  

<MediaRow
  items={[
    { type: "image", src: "/images/hranice-soukromi-obr-30.jpg", alt: "korýši" },
    { type: "image", src: "/images/hranice-soukromi-obr-31.jpg", alt: "racci" },
    { type: "image", src: "/images/hranice-soukromi-obr-32.jpg", alt: "termofotka" },
    { type: "image", src: "/images/hranice-soukromi-obr-33.jpg", alt: "Vojta Maur na lodi" },
    { type: "image", src: "/images/hranice-soukromi-obr-34.jpg", alt: "kostky cukru" },
    { type: "image", src: "/images/hranice-soukromi-obr-35.jpg", alt: "výstava Milana Maura" },
  ]}
/>

<MediaRow
  items={[
    { type: "image", src: "/images/hranice-soukromi-obr-36.jpg", alt: "pelikáni v zoo" },
    { type: "image", src: "/images/hranice-soukromi-obr-37.jpg", alt: "blesk na Moravě" },
    { type: "image", src: "/images/hranice-soukromi-obr-38.jpg", alt: "Lukáš Plescher" },
    { type: "image", src: "/images/hranice-soukromi-obr-39.jpg", alt: "termofotka mraků" },
    { type: "image", src: "/images/hranice-soukromi-obr-40.jpg", alt: "Vojta Maur s motorovou pilou" },
    { type: "image", src: "/images/hranice-soukromi-obr-41.jpg", alt: "zapalovač s nápisem BURN SYSTEM" },
  ]}
/>

<MediaRow
  items={[
    { type: "image", src: "/images/hranice-soukromi-obr-42.jpg", alt: "zatopený lom" },
    { type: "image", src: "/images/hranice-soukromi-obr-43.jpg", alt: "les" },
    { type: "image", src: "/images/hranice-soukromi-obr-44.jpg", alt: "cenzurovaný obrázek" },
    { type: "empty" },
    { type: "empty" },
    { type: "empty" },
  ]}
/>

**série 10:**  

<MediaRow
  items={[
    { type: "image", src: "/images/hranice-soukromi-obr-45.jpg", alt: "cenzurovaný obrázek" },
    { type: "empty" },
    { type: "empty" },
    { type: "empty" },
    { type: "empty" },
    { type: "empty" },
  ]}
/>


**Zdrojový kód**  
Zdrojový Python kód pro tento projekt je dostupný zde:

```python
import os
import random
from pathlib import Path

def open_random_image(folder_paths, excluded_paths):
    # Převod cest na absolutní cesty
    folder_paths = [Path(folder).resolve() for folder in folder_paths]
    excluded_paths = [Path(excluded).resolve() for excluded in excluded_paths]

    # Seznam podporovaných přípon souborů
    supported_extensions = ['.png', '.jpg', '.jpeg', 'tif', 'tiff']

    # Seznam pro ukládání cest k obrázkům
    images = []

    # Prochází všechny zadané adresáře
    for folder_path in folder_paths:
        # Prochází soubory v adresáři a jeho podsložkách
        for path in folder_path.rglob('*'):
            # Přidává cesty k obrázkům, pokud mají podporovanou příponu
            if path.suffix.lower() in supported_extensions:
                images.append(path)

    while True:
        if not images:
            print("V zadaných adresářích nebyly nalezeny žádné obrázky.")
            return

        # Náhodný výběr souboru
        image_path = random.choice(images)

        # Kontroluje, zda vybraná cesta neleží v některém z vyloučených adresářů
        if any(image_path.is_relative_to(excluded) for excluded in excluded_paths):
            continue  # Pokud je cesta vyloučená, vybere jiný obrázek

        print(f"Otevírám obrázek: {image_path}")
        os.startfile(image_path)
        return

# Seznam cest k adresářům
folder_paths = [
    r"D:\\02_záloha dat",
    r"G:",
    r"K:"
    #r"C:"
]

# Seznam cest k vyloučení
excluded_paths = [
    r"K:\\WEB",
]

while True:  # Nekonečná smyčka
    open_random_image(folder_paths, excluded_paths)
    input("Stiskni ENTER pro opětovné spuštění nebo Ctrl+C pro ukončení programu...")

```