Acties:
  • 0 Henk 'm!

  • Pinin
  • Registratie: Januari 2004
  • Laatst online: 24-09 10:29

Pinin

Historie | Luxe | Duurzaam

Topicstarter
Ik heb een afbeelding met blokken (pixels?) in diverse kleuren, nu wil ik die omzetten naar een symbool
(bijv. asii)
Weet iemand een progje of functie in fotoshop waar mee ik dit kan realiseren?
Het gaat er niet om dat het perse ascii tekens zijn maar ik wil gewoon duidelijk +/- 80 kleuren uit elkaar halen zonder te gissen naar de juiste kleur, bovendien moet ik het printen

Afbeeldingslocatie: http://tweakers.net/ext/f/Sd6btgnFKPsmZp87ydRoCA5D/full.jpg

de bovenste drie regels van bovenstaande tekening wordt dan

ABBAAAAABBB
BBBBBBBBBCC
AEEEAFCGHIJK
LLLL
enzovoort


edit: typo in TS, het is natuurlijk sumbooL

[ Voor 11% gewijzigd door Pinin op 01-08-2011 18:50 ]

www.casarodriguillo.com


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Is toch geen rocketscience? Je begint op 0,0 en assigned A aan de eerste kleur, vervolgens 1,0 -> nieuwe kleur -> B dan 2,0 -> die kleur kennen we al -> B tot 10,0 en dan 0,1, 0,2, ... tot je bij 10,10 bent. 2 Nested for-lusjes, dictionary/hashmap/associative_array/watjijfijnvindt et voila.

/edit: Oh we zitten in GFX :P Ik dacht even PRG :X
Als je een kant-en-klare oplossing zoekt: Waar vind ik...?. Ik weet zo iig geen programma dat specifiek aan je eisen (printbaar) voldoet. Maar dat is ook afhankelijk wat je onder printbaar verstaat. Je zou gewoon een rgb matrix kunnen maken van hex-waarden (#0f2339) ofzo. Dat is wel "printbaar".

/edit2: Ik zou eens kijken/zoeken naar "image to 'paint by number'" oid.

[ Voor 68% gewijzigd door RobIII op 01-08-2011 19:23 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Pinin
  • Registratie: Januari 2004
  • Laatst online: 24-09 10:29

Pinin

Historie | Luxe | Duurzaam

Topicstarter
O.k. sorry, in de verkeerde forum/topic/afdeling

Zou je hem svp. naar software willen verplaatsen


edit: Paint bij numbers is idd wel een goede, wat ik wil heeft er niets mee te maken, maar het komt op precies hetzelfde neer. THX

[ Voor 40% gewijzigd door Pinin op 01-08-2011 19:25 ]

www.casarodriguillo.com


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Het "probleem" hierbij is denk ik wel dat je pixels geen pixels zijn, maar blokken van 20x20 pixels. Of is deze afbeelding uitvergroot ter illustratie? Anders moet je de afbeelding eerst verkleinen zodat ieder "blok" één pixel groot is.

Edit: is dit wat?
code:
1
2
3
4
5
6
7
8
9
10
ABBAAAABBB
BBBBBBBBCC
DEEEAFGHIJ
KKKKLCHMNO
KDKKAMMPMQ
KKKKRSPMNT
KEUVWMMMNT
KDVHXNOOTY
ZFA010INOO
23A1444MOJ

:P

@RobIII: ;) De kleuren op (0,0) en (0,2) lijken hetzelfde, maar de laatstgenoemde heeft één beetje meer blauw.

[ Voor 57% gewijzigd door CodeCaster op 01-08-2011 20:11 ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Ik zou overigens geen jpg gebruiken wegens subtiele kleurverschillen.
CodeCaster schreef op maandag 01 augustus 2011 @ 19:33:
Edit: is dit wat?
code:
1
2
3
4
5
6
7
8
9
10
ABBAAAABBB
BBBBBBBBCC
DEEEAFGHIJ
KKKKLCHMNO
KDKKAMMPMQ
KKKKRSPMNT
KEUVWMMMNT
KDVHXNOOTY
ZFA010INOO
23A1444MOJ

:
Ik kom op:
code:
1
2
3
4
5
6
7
8
9
10
ABBAAAABBB
BBBBBBBBCC
ADDDAECFGH
IIIIFCFJKK
IAIIAJJLJM
IIIIEJLJKG
IDIENJJJKG
IAEFEKKKGM
OEAPQPGKKK
RSAQTTTJKH

:Y)

Het voorbeeld van TS klopt niet, die slaat namelijk "D" al over en wegens JPG compressie en dan maar nét welk punt je sampled krijg je dus verschillen in de output. Daarom is JPG ook zeker geen goede keuze.
CodeCaster schreef op maandag 01 augustus 2011 @ 19:33:

@RobIII: ;) De kleuren op (0,0) en (0,2) lijken hetzelfde, maar de laatstgenoemde heeft één beetje meer blauw.
Het is maar net waar je sampled; ik sample in 't midden van de blokken; aan de edges heb je sowieso grotere kleurveschillen ;) En jij hebt volgens mij eerst de image gescaled naar 10x10 :P

[ Voor 104% gewijzigd door RobIII op 01-08-2011 20:19 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Klopt, als ik 'm niet scale en inderdaad in het midden sample komt er dit uit:
code:
1
2
3
4
5
6
7
8
9
10
ABBAAAABBB
BBBBBBBBCC
ADDDAECFGH
IIIIFCFJKK
IAIIAJJLJM
IIIIEJLJKG
IDIENJJJKG
IAEFEKKKGM
OEAPQPGKKK
RSAQTTTJKH

Altijd baas boven baas hè. ;(

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
If you that but know! :+

Overigens, @TS: Je begrijpt dat dit feitelijk niet veel meer is dan "indexed color" (om maar even in GFX termen te blijven :+)? En dat een heleboel afbeeldingsformaten al min-of-meer ("intern") op deze manier werken (met een toegevoegd kleurtabelletje "A=#e39a23, B=#....." dan)?

Het is misschien handig als je wél even je (uiteindelijke) doel hier neerzet. Zo voorkom je wellicht dat je 't wiel opnieuw uitvindt.

[ Voor 58% gewijzigd door RobIII op 02-08-2011 00:34 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Pinin
  • Registratie: Januari 2004
  • Laatst online: 24-09 10:29

Pinin

Historie | Luxe | Duurzaam

Topicstarter
o.k. THX
1. JPG, was eerst BMP (maar kan ik hier niet laten afbeelden op got) Maar het hoeft geen jpg te zijn alle formaten zijn prima
2. Als het makkelijker/beter is om het om te zetten naar 1x1 pixel kan dat ook > geen probleem (20x20 is maar een voorbeeld)
3. Uiteindelijk gaat het wss om 32 kleuren (of 8x grijstint)
4. Het gaat om mozaiktegels qua kleur te herkennen in een afbeelding.

* hoe hebben jullie het nu omgezet?
Ik weet dat ik in de devschuur zit -en dat is iets boven my league- maar iig bedank voor de hulp.

@Roblll, het omzetten van een #-nummer naar A, B, enz. begrijp ik wel maar je moet ook een "enter" krijgen aan het eind, in dit voorbeeld is het 10x10, maar het kan ook 9x3 zijn maar net zo goed 30x70

www.casarodriguillo.com


Acties:
  • 0 Henk 'm!

  • Standeman
  • Registratie: November 2000
  • Laatst online: 20:51

Standeman

Prutser 1e klasse

Pinin schreef op dinsdag 02 augustus 2011 @ 08:31:
@Roblll, het omzetten van een #-nummer naar A, B, enz. begrijp ik wel maar je moet ook een "enter" krijgen aan het eind, in dit voorbeeld is het 10x10, maar het kan ook 9x3 zijn maar net zo goed 30x70
Dat kan je gewoon opnenemen in je definitie. aantal pixels x en y. Dan kan heb je geen enters nodig.

[ Voor 4% gewijzigd door Standeman op 02-08-2011 09:37 ]

The ships hung in the sky in much the same way that bricks don’t.


Acties:
  • 0 Henk 'm!

Verwijderd

Als ik het goed begrijp is het dus de bedoeling dat je een afbeelding met mozaïek vertaald naar code, welke later weer kan worden omgezet naar werkelijk tegels in de gewenste kleur.

Hoewel het erg ingewikkeld lijkt is dat het zeker niet, maar vereist het wel wat programmeer kennis. En waarschijnlijk omdat het zo simpel is zijn er geen echte applicaties of scripts voor te vinden.

Maar een aantal stappen zijn hier wel nodig:

1) uitlezen van de tegels in de afbeelding en opslaan als RGB waardes (als array)
2) zoeken in array met tegelkleuren (ook in RGB) voor juiste match
3) tegelcodes opslaan in array en wegschrijven in gewenste formaat

Nu heb je een bestand met de codes die je kunt gebruiken om weer te printen of naar een computer te sturen.

4) uitlezen bestand en tegelcodes in array zetten
5a) tegelcodes omzetten naar RGB waarden en printen
5b) tegelcodes doorgeven aan computer voor productie


De (programmeer)taal waarin je het doet en het formaat waarin je het bestand opslaat is helemaal aan jou. En wanneer je de kennis er niet voor hebt, dan is er vast een programmeur die het kan doen met de eisen die je hebt.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Pinin schreef op dinsdag 02 augustus 2011 @ 08:31:
* hoe hebben jullie het nu omgezet?
Ik weet dat ik in de devschuur zit -en dat is iets boven my league- maar iig bedank voor de hulp.
Gewoon :P
Met een quick'n'dirty, on-the-fly geflanst stukkie PHP:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$filename = './251514.jpg';
$sampleinterval = 20;

$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';

$lookup = array();
$width = 0;
$height = 0;
$type = null;
$attr = null;
list($width, $height, $type, $attr) = getimagesize($filename);
$img = imagecreatefromjpeg($filename);
for ($y = $sampleinterval / 2; $y < $height; $y += $sampleinterval) {
  for ($x = $sampleinterval / 2; $x < $width; $x += $sampleinterval) {
    $c = imagecolorat($img, $x , $y);
    if (!isset($lookup[$c]))
      $lookup[$c] = sizeof($lookup);
    echo $chars[$lookup[$c]];
  }
  echo "<br>";
}
imagedestroy($img); 

foreach ($lookup as $k=>$v)
  echo $chars[$v] . '=#' . str_pad(dechex($k), 6, '0', STR_PAD_LEFT) . '<br>';


ABBAAAABBB
BBBBBBBBCC
ADDDAECFGH
IIIIFCFJKK
IAIIAJJLJM
IIIIEJLJKG
IDIENJJJKG
IAEFEKKKGM
OEAPQPGKKK
RSAQTTTJKH
A=#663332
B=#9a3334
C=#cb6632
D=#320033
E=#996533
F=#cd9933
G=#996500
H=#fe9900
I=#333333
J=#cc6601
K=#cc9900
L=#ff6600
M=#999a00
N=#993400
O=#989933
P=#673301
Q=#333300
R=#676733
S=#cc9866
T=#330000
Pinin schreef op dinsdag 02 augustus 2011 @ 08:31:
@Roblll, het omzetten van een #-nummer naar A, B, enz. begrijp ik wel maar je moet ook een "enter" krijgen aan het eind, in dit voorbeeld is het 10x10, maar het kan ook 9x3 zijn maar net zo goed 30x70
Dit stukje code gaat uit van vierkante tegels/pixels. Als dat niet altijd zo is zul je sampleinterval moeten splitsen in een sampleintervalX en sampleintervalY maar dat is geen rocket science.

Oh, en hierbij ga ik er van uit dat je nooit meer dan 62 kleuren (2x alfabet + 10 cijfers) hebt; anders moet je even wat meer karakters toevoegen of een andere manier van "encoden" gebruiken.

[ Voor 16% gewijzigd door RobIII op 02-08-2011 10:41 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Pinin
  • Registratie: Januari 2004
  • Laatst online: 24-09 10:29

Pinin

Historie | Luxe | Duurzaam

Topicstarter
Dank jullie allemaal voor de reacties en hulp, ik ga er weer verder mee en heb ik weer vragen dan kom ik erover terug.

www.casarodriguillo.com

Pagina: 1