C#-ban meg lehet e írni egy olyan programot ami beolvas egy file-t (pl egy képet) felbontja számkódokra és reverzibilis módon összekeveri azokat?
Ugye itt két dolog van: betölteni a képfájlt a memóriába, és a reverzibilis, de mégis véletlenszerűnek látszó keverőalgoritmus.
Az elsőre vannak könyvtárak, keresgélj (ilyesmikre biztos találsz százmillió példaprogramot, hogy display picture c# vagy show picture vagy load picture vagy picture helyett jpg/png/bmp stb.), sőt, gyanítom, hogy a .NET-ben is van ilyen.
A másodikra pedig mit jelent az, hogy számkód? A pixelek színkódjai? Ezen egy kicsit törd a fejed, akár rajzolj is, hogy hogy lenne jó.
Persze, hogy meg lehet.
Betölteni a képet és pixelenként hozzáférni nem nagy cucc. A lényeg itt a keverőalgoritmus, ez az, amit Neked kell kitalálnod. A kérdés, hogy mi a célod vele. Csak simán nézhetetlenné akarod tenni a képet? Mert akkor pl. pixel-soronként végigmész rajta a feléig, a páratlan sorokat megcseréled mondjuk a legutolsó sortól visszafelé haladva a sorokkal, a páros sorokat meg a középső sortól előrefelé haladva a sorokkal. Ezt most csak így hasraütésre írtam, de szerintem nem lesz felismerhető a kép, és reverzibilis.
Ha a 19:35ös módszerét használod, akkor elég felismerhető lesz a kép, hiszen pl. a kép alsó felében az eredeti képed felső felét kapod meg 2x "kisebb felbontásban". (az alsó negyed kép tükrözve lesz)
Ha nem fontos a pixel csere, hanem mondjuk az egyes pixelek módosítása is megfelel, akkor teheted azt, hogy inicializálsz egy Random objektumot egy adott seed-del, sorba mész a pixeleken, és mindne pixelt XOR-olsz a következő random értékkel. Dekódoláshoz ugyanezt kell csinálni, mivel (x XOR r) XOR r = x, ahol x a pixeled, r a random szám.
Ha ragaszkodsz a csereberéhez, akkor is sztem vmi adott seed-del kezdődő randomot használj, mivel ez véletlenszerűnek tűnik, mégis kiszámítható.
"Ha a 19:35ös módszerét használod, akkor elég felismerhető lesz a kép"
19.35 vagyok, ja, kipróbáltam, valóban eléggé felismerhető :) De azért érdekes formák jönnek ki XD És nem pontosan az, amit te leírtál :D
Akkor vagy én értettem félre, vagy te rontottál el valamit.
Tegyük fel, hogy 20 sor van a képen, akkor így kevered ha jól értem (sorszámok):
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
20,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,1
20,11,3,4,5,6,7,8,9,10,2,12,13,14,15,16,17,18,19,1
20,11,19,4,5,6,7,8,9,10,2,12,13,14,15,16,17,18,3,1
20,11,19,12,5,6,7,8,9,10,2,4,13,14,15,16,17,18,3,1
...
20,11,19,12,18,13,17,14,16,15,2,4,6,8,10,9,7,5,3,1
Ebből a 2,4,6,8,10 rész (ami az ekészült kép harmadik negyede) pont az eredeti kép felső felének "kicsinyített" mása. A 9,7,5,3,1 szintén, csak tükrözve. Én ezt írtam.
Miért kell egyáltalán szöveggé alakítani?
Nem is értem..
egyébként itt a forrás(csak a lényeges részt másoltam ki):
De tényleg nem működik annyira faszául, ki lehet venni az eredeti kép részleteit :)
Bent maradt pár felesleges sor :)
További kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!