Vytištění RGB palety v obdélníku – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Vytištění RGB palety v obdélníku – Python – Fórum – Programujte.comVytištění RGB palety v obdélníku – Python – Fórum – Programujte.com

 

Martin
~ Anonymní uživatel
1556 příspěvků
27. 3. 2022   #1
-
0
-

Dobrý den, mám úkol ze školy. Jelikož v pythonu nic neumím, učíme se ho cca 2 měsíce nenapadá mne nic, jak bych mohl úkol splnit. Hledám už cca 4h na internetu a nikde nic :-(

Úkol zní takto :

Vykresli do plochy barevnou škálu dle obrázku

Připojen obrázek.

Nemohl by prosím někdo poradit, moc děkuji.

PS: z předchozího úkolu celá třída dostala za 5 a toto dopadne stejně :-(

Nahlásit jako SPAM
IP: 159.253.236.–
Jerry
~ Anonymní uživatel
489 příspěvků
27. 3. 2022   #2
-
0
-

já moc v Pythonu nedělám ale co zkusit příklad tady

https://www.geeksforgeeks.org/python-pil-putpixel-method/

nebo bych si vzal hotovej příklad

https://github.com/sedthh/pyxelate

tady je malá knihovna co pomocí OpenGL kreslí jednoduchou grafiku jako pixely atd.

Nahlásit jako SPAM
IP: 2a00:1028:83bc:e52a:b0ad:dea7:f589:9cf3...–
gna
~ Anonymní uživatel
1698 příspěvků
27. 3. 2022   #3
-
0
-

To RGB jsou jednotlivé barevné komponenty (red, green, blue) výsledné barvy.

Jasně tam vidíš červený, zelený a modrý pruh. To mezi tím je přechod mezi těmi barvami. Takže třeba mezi červenou a zelenou začínáš na plně červené, chvíli přidáváš zelenou (z červené vzniká žlutá) a pak zase ubíraš červenou (ze žluté vzniká zelená). Podobně pro další přechody.

Nevím, jestli záleží na tom, jak konkrétně budete ten přechod generovat, ale ta ukázka vypadá na cosinus.

Připojen obrázek.

A nakonec je tam to, že dolní pixely jsou tmavší než horní. Nejspíš to půjde celé nacpat do jedné šikovné rovnice, ale je to jen primitivní šaškování se třemi čísly.

Jestli potřebuješ poradit víc, tak napiš, co konkrétně máš a co nevíš a nechoď sem jen se zadáním. Ve školách se prostě nedávají úkoly na věci, co nemůžete znát a jestli dostávate všichni koule, tak jste všichni dementi.

Nahlásit jako SPAM
IP: 213.211.51.–
peter
~ Anonymní uživatel
3833 příspěvků
28. 3. 2022   #4
-
0
-

krok 1: najdes si nejaky kod
https://www.geeksforgeeks.org/…ixel-method/

# Importing Image from PIL package 
from PIL import Image
      
# creating a image object
image = Image.open(r'C:\Users\System-Pc\Desktop\python.png') 
  
width, height = image.size
  
for x in range(height):
    image.putpixel( (x, x), (0, 0, 0, 255) )
  
image.show()

Z toho kodu, je jasne videt, ze python pouziva pro vykreslovani funkci
image.putpixel( (x, x), (0, 0, 0, 255)
---
krok 2, zjistis neco vic, treba najsed dokumentaci: google = python putpixel documentation
putpixel((x,y),(r,g,b,0)) https://linuxtut.com/…a52191b164b/
Cili, do te funkce se zadavaji souradnice, x,y, ktere budes generovat cyklem. A slozky barvy r-g-b, red-gree-blue a nejaka ctvrta slozka, ktera nejspis bude pruhlednost, jas nebo tak neco.
---
krok 3: Takze, bys si nejdriv vyrobil program, ktery mi zobrazi tak 10 pixelu. Az to budes mit, tak ma smysl zabyvat se cykly.
---
Jak generovat ten obrazek?
Musis se na ten obrazek divat jako na tabulku cisel.
Nahore jsou bile barvy. Bila barva ma vsechy red-green-blue = 255, 255, 255, putpixel((x,y),(255,255,255,0))
Dole jsou cerne barvy. Cerna je nula. red-green-blue = 0, 0, 0.
Takze, uz v tuto chvili vis, ze cyklus pujde zhora 255 dolu do 0 pro vsechny 3 slozky barvy.

Ale, jak to bude s tim zleva doprava?
Tam je poradi barev fialova, cervena, zluta, zelena, svetla modra, modra, fialova.
fialova 255, 0, 255 (cerveno-fialova)
cervena 255, 0, 0 (cervena)
zluta 255, 255, 0 (cerveno-zelena)
zelena 0, 255, 0 (zelena)
svetla modra 0, 255, 255 (zeleno-modra)
modra 0, 0, 255 (modra)
fialova 255, 0, 255 (cerveno-fialova)
Takze, potrebujes funkci, ktera pro x 0-255 nebo 0-1000 vygeneruje hodnoty duhy a pro y 0-255 ty hodnoty zeslabi o 0-255.
funkce (x, x_max, y, y_max) {vypocitej barvu}
Kde ten vypocet budes delat vypoctem pomeru, prevazne. x/x_max * 255, y/y_max * 255.
---
Pozn. Mozna bude mozne pouzit funkce pro hsl-barevny model nebo rgb model. A nebo je to zavadejici informace :)
google = rgb grayscale wiki
Sedy odstin (prevod barevneho obrazku na sedy) se v rgb pocita jako
shadow = 0.2627 * r + 0.7152 * g + 0.0722 * b
Pozn: Lidske oko je citlive na zeleno-zlutou barvu. Tu vnima jako nejsvetlejsi. Takze, pri vypoctu jasu hraje zasadni roli, 71.52%.
---
To, ze jste dostali za 5 je z lenosti. Treba si sednout a premyslet nad tim, co znas. A sehnat nekoho, kdo ti poradi, co s tim, pripadne i sam ucitel. Jde o to se to naucit, nejde o to trestat zaky petkami. Znamka jen hodnoti znalosti, ktere jsi prokazal. Bud je hrozne spatne zadani nebo jsi nevenoval dost casu pochopeni problemu. Nebo jsi nepochopil zaklady. Co se vlastne v takovem programu da a neda delat.
Program jen vykonava prikazy. A pracuje jen s tim, co ma v pameti. Neco veme z pameti, provede s tim nejake operace a vrati to zpet do pameti. Disk, kraficka karta, pametova karta, vse je to pamet, ktera je pristupna pres cislo. nacti_z(n), zapis_do(n). Pocitac ma urcene, ze  

n=[0 az x] je disk, 
n=[x+1 az y] je graficka karta, 
n=[y+1 az z] je kopirovani dat pres sitovy kabel... 

Cili, vse, co muzes delat jsou jen vypocty a presun 1 nebo vice znaku z pameti z procesoru nebo zpet do pameti. K tomu mas promene a cykly a operace s promenymi (porovnani IF, matematicke nebo jine funkce nebo tvoje funkce, ruzne moduly ktere delaji spoustu veci uz za tebe).
Takze, kdyz po vas ucitel chce program, tak chce, abys tam mel funkce, promene a cykly. A vsechno, ostatni v zadani do toho musis napasovat.

Nahlásit jako SPAM
IP: 2001:718:2601:258:5b1:4a21:f88d:b089...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 12 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032022 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý