Ciao Marco, prego.
Un'immagine SVG è un file XML che descrive le varie forme che compongono la figura. Ogni forma è descritta con le coordinate dei punti che si trovano sul suo perimetro. Di conseguenza, ogni forma è un elemento XML discreto su cui puoi mettere un Id o altre informazioni, che poi userai dall'applicazione per determinare se l'area è colorabile o no, e se appartiene a un gruppo (es. l'utente ha cliccato sulla portiera ma si deve modificare anche il cofano e tutte le restanti forme della carrozzeria).
Comunque, se vuoi valutare SVG, scaricati InkScape che è un software di disegno gratuito, poi disegna qualche rettangolo, salva come SVG e apri il file con blocco note per vedere cosa contiene.
Ovviamente le immagini andranno curate, cioè dovrai andare a porre tu (o chi per te) gli attributi sugli elementi XML che l'applicazione userà per capire quali sono le forme colorabili.
Non ho mai lavorato con immagini vettoriali.
Se vuoi lavorare con immagini raster tipo JPG, dovrai inventarti qualcosa perché, come abbiamo detto, non c'è modo di distinguere un'"area" da un'altra. Potresti aprire la JPG con photoshop e poi con la bacchetta magica vai a selezionare tutte le aree colorabili. A questo punto crei un nuovo livello e le riempi di rosso. Poi salvi questa immagine (senza lo sfondo originale) come PNG trasparente.
Nell'applicazione mostri le due immagini sovrapposte: la JPG originale sotto e la PNG trasparente sopra. Se l'utente clicca su un pixel non trasparente della PNG, allora vuol dire che il pixel era colorabile e alteri la tonalità del colore rosso della PNG con una tecnica chiamata hue rotation (una dimostrazione la trovi qui).
https://jsfiddle.net/ub2z9wL0/La JPG non la tocchi mai.
In questo modo non devi usare neanche AForge.NET.
Se hai più aree colorabili con colori differenti, crei altre PNG che sovrapporrai l'una sull'altra. Quando l'utente clicca, passa in rassegna tutte le PNG della pila e trova quella che ha un pixel opaco, e colorala.
ciao,
Moreno
Modificato da BrightSoul il 10 gennaio 2019 09.27 -