Domanda

Esiste un modo semplice per colorare in modo programmatico le immagini in .NET? Fondamentalmente abbiamo un'immagine in bianco e nero e dobbiamo mettere uno strato di rosa sopra di esso e ridurre l'opacità di quel livello per rendere l'immagine colorata di rosa.

È stato utile?

Soluzione

Dovresti usare la meravigliosa ImageMagick . Ha collegamenti .NET quindi nessun problema lì.

Buon divertimento! :)

Altri suggerimenti

Il modo in cui viene in mente sta usando i pacchetti Disegno per disegnare un rettangolo sull'immagine in un determinato colore (puoi impostare l'alfa). Non è molto efficiente ma, con la memorizzazione nella cache, non farebbe alcun danno, anche su un server occupato.

Questo è un po 'troppo personalizzato per un metodo framework .net. Se non riesci a trovare una soluzione di chiamata a un singolo metodo .. Pubblico qualcosa che potrebbe essere qualcosa da guardare.

Se si dispone di un WPF, è possibile caricare l'immagine in un controllo. Avere un altro controllo (Rettangolo con riempimento rosa e Trasparenza) sopra di esso. (Usa qualcosa come una griglia per il layout in modo che entrambi si sovrappongano perfettamente) Successivamente potresti

RenderTargetBitmap bmp = new RenderTargetBitmap( imageWidth,imageHeight, 
  DPIHoriz, DPIVert, 
  PixelFormats.Pbrga32);
 // if you don't want to make the controls 'visible' on screen, you need to trigger size calculations explicitly. 
grid.Measure(new Size(imageWidth, imageHeight));
grid.Arrange(new Rect(0,0, imageWidth, imageHeight);
bmp.Render(grid);

Quindi ottieni tutto ciò che vedi sullo schermo, scritto in Bitmap in memoria. Potresti quindi salvarlo. Se il problema persiste, puoi scegliere il controllo del livello dei pixel con la classe WriteableBitmap ed eseguire il lavoro byte.

Penso che sarà un po 'più complicato se vuoi colorare un'immagine piuttosto che mettere semplicemente uno strato smi-trasparente. Se vuoi avere lo stesso effetto della schermata " " la modalità di livello in PhotoShop quindi devi sostituire tutte le sfumature di nero nell'immagine con sfumature del nuovo colore per mantenere bianche le parti bianche.

Può sicuramente essere fatto in .NET, ma suppongo che non farebbe male guardare in una libreria di qualche tipo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top