## cvičení 12
## Zpracování obrazu
from PIL import Image
import math

WHITE = (255, 255, 255)
BLACK = (0, 0, 0)


# UKOL 01
# Vytvořte a zobrazte obrázek velikosti 300 x 300 px dané barvy
# <color>.
# Dále do obrazu nakreslete svislé pruhy jiné barvy.
def unicolor_image(color=WHITE):
    pass


## ÚKOL 02
## Funkce <circle> vytvoří obrázek, který bude mít ve středu kruh,
## dotýkající se ošech stran obrazu. Kruh bude mít barvu <color> a
## bude na černém pozadí.
def circle(radius, color):
    pass


def distance(x1, x2, y1, y2):
    pass


## ÚKOL 02
## Funkce <color_gradient> vytvoří barevný přechod barev <col1> a <col2>.
## Přechod vypadá tak, že na levém okraji jsou pixely barvy <col1> a
## směrem doprava se tato barva mění v <col2>.
## Implementujte a použijte pomocnou funkci <combine_colors>,
## která smíchá dvě barvy v poměru <rate> z rozsahu (0, 1).
def color_gradient(color1, color2):
    size = 300
    img = Image.new('RGB', (size, size))
    # TODO: do obrazu vykreslete barevný gradient

    img.show()


def combine_colors(color1, color2, rate):
    pass


## ÚKOL 03
## Napište funkci <chessboard>, která vytvoří obrázek šachovnice 8x8 polí.
## Size je velikost jednoho políčka, vhodná velikost je 50px.
def chessboard(size):
    pass


## ÚKOL 04
## Napište funkci <transformation>, která načte obráze
## "image_path" a proveďte na něm následující transformace:
## a) Zrcadlete obrázek zprava doleva.
## b) Pixely s modrou složkou menší než 128 zabarvěte na černo.
## c) *Upsampluje obraz na dvojnásobek. (sami navrhněte, jak doplnit barvu chybějících pixelů).
## Každá transformace je implemtntována vlastní funkcí.
def transformation(image_path):
    img = Image.open(image_path)

    mirror(img)
    filter_blue(img)
    img = upsample(img)
    img.show()


def mirror(img):
    pass


def filter_blue(img):
    pass


def upsample(img):
    return img


## ÚKOL 05
## Rozluštěte obrázkovou šifru zadanou grafikou
## "hledej_v_modre.png".
def hledej_v_modre():
    pass


if __name__ == "__main__":
    # zde můžete volat implementované funkce a zkusit si, jak fungují
    unicolor_image(color=BLACK)
