11.190 messaggi dal 09 febbraio 2002
Contributi
Prego ma aspetta perché questa parte è fondamentale. Per questo chiedevo più informazioni sul progetto.

Bhe si... penso che dovrò ottemperare a questa funzionalità...


Come fai a memorizzare nel database il colore associato a un'area? Nelle immagini raster (JPG, PNG) non esiste il concetto di "area" perché sono solo dei pixel che hanno un certo colore.

Chiarisci chi/cosa produce le immagini e cosa rappresentano le aree.

ciao,
Moreno
Modificato da BrightSoul il 09 gennaio 2019 14.43 -

Enjoy learning and just keep making
95 messaggi dal 09 luglio 2009
In realtà non credo che sia necessario salvare su DB la relativa colorazione su parti della immagine.
Credo che per me sia sufficiente colorare la parte relativa alla immagine e quando l'utente finisce la personalizzazione, un pulsante che salvi l'immagine colorata a piacimento. Tutto qui ;).

Le immagini sarebbero fornite da alcune aziende che devono consentire la personalizzazione di alcune aree (per esempio un'auto o una scarpa)
Modificato da marcopuccio il 09 gennaio 2019 13.49 -
95 messaggi dal 09 luglio 2009
Buonasera Moreno,
una ulteriore domanda se possibile: esiste questa libreria per utilizzarla in XamarinForms o eventualmente una similare?

In rete non sono riuscito a trovare nulla di interessante...
Grazie
11.190 messaggi dal 09 febbraio 2002
Contributi

una ulteriore domanda se possibile: esiste questa libreria per utilizzarla in XamarinForms o eventualmente una similare?

Sembra che la libreria non sia stata compilata per .NET Standard. Usa il .NET Portability Analyzer per verificare se le .dll di AForge sono 100% compatibili e in quel caso le puoi provare a usare.
https://github.com/Microsoft/dotnet-apiport/tree/dev/docs/Console


Le immagini sarebbero fornite da alcune aziende che devono consentire la personalizzazione di alcune aree

Come determini quali aree l'utente può personalizzare? Gli è consentito di fare il cofano blu e la portiera arancione? E i vetri rossi?

Esamina bene il problema perché è strano che la selezione dell'utente non debba poi essere salvata in qualche formato lavorabile, tipo per la produzione di un riepilogo testuale o di un report.

Se dici che tutto ciò non serve, allora va bene AForge.NET. Altrimenti dovrai valutare immagini vettoriali SVG che ti permettono di definire bene ciascuna area e gruppi di aree.

ciao,
Moreno

Enjoy learning and just keep making
95 messaggi dal 09 luglio 2009
Carissimo Moreno, buonasera.
In realtà, pensandoci a mente serena, l'immagine avrebbe qualche area non colorabile ma in questo caso non riuscirei a indicare quali aree poter colorare o meno...

Mi sa che devo valutare l'utilizzo di img SVG ... hai qualche suggerimento? Non ho mai lavorato con immagini vettoriali.

Grazie comunque sempre!
11.190 messaggi dal 09 febbraio 2002
Contributi
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 -

Enjoy learning and just keep making
95 messaggi dal 09 luglio 2009
Ancora grazie e buongiorno Moreno,
sono tutte soluzioni ottime.

Vedo di documentarmi meglio sul fatto delle vettoriali e vediamo quale metodo è migliore per procedere.

Intanto grazie ancora! è sempre un piacere
11.190 messaggi dal 09 febbraio 2002
Contributi
Ok, prego Marco, buon lavoro!

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.