Sto avendo problemi con l'immagine di alleggerimento. So che potrei farlo aumentando/diminuendo i valori dei pixel, tuttavia non è quello che sto cercando. Mi è stato detto che c'è un modo che non richiede di scorrere tutti i pixel e che è molto più veloce. Come fare questo? Grazie.Come schiarire l'immagine in C# senza effettivamente iterare attraverso tutti i pixel dell'immagine?
Come schiarire l'immagine in C# senza effettivamente iterare attraverso tutti i pixel dell'immagine?
risposta
Per modificare la luminosità di una foto, è sempre necessario modificare ciascun pixel (se non è un grafico basato su vettori). iterare attraverso tutti i pixel dovrebbe essere l'unico modo che penso. Forse c'è una struttura che fa il lavoro per te. oppure puoi cercare un algoritmo veloce che combini una matrice di pixel a un subpixel. tutto sommato ci sono molte possibilità. l'elaborazione delle immagini è un argomento complesso.
potete trovare alcuni esempi qui: http://www.authorcode.com/making-image-editing-tool-in-c-brightness-of-an-image/
si utilizza la classe ColorMatrix nel codice System.Drawing di applicare trasformazioni di colore in un modo altamente ottimizzato. Effetti come luminosità e contrasto sono direttamente supportati. This web page mostra come dovrebbe apparire la matrice.
Per schiarire un'immagine, è possibile applicare un velo bianco sopra:
Bitmap bmp = new Bitmap(@"Image.png");
Rectangle r = new Rectangle(0, 0, bmp.Width, bmp.Height);
alpha = 128
using (Graphics g = Graphics.FromImage(bmp)) {
using (Brush cloud_brush = new SolidBrush(Color.FromArgb(alpha, Color.White))) {
g.FillRectangle(cloud_brush, r);
}
}
bmp.Save(@"Light.png");
Il valore alfa può variare da 0 a 255. 0 significa che l'effetto è completamente trasparente risultante nell'immagine originale. 255 significa che l'effetto è completamente opaco risultante in un rettangolo bianco solido. Qui, l'effetto è mostrato con 128.
Per scurire un'immagine, è possibile applicare un velo nero sopra:
Bitmap bmp = new Bitmap(@"Image.png");
Rectangle r = new Rectangle(0, 0, bmp.Width, bmp.Height);
alpha = 128
using (Graphics g = Graphics.FromImage(bmp)) {
using (Brush cloud_brush = new SolidBrush(Color.FromArgb(alpha, Color.Black))) {
g.FillRectangle(cloud_brush, r);
}
}
bmp.Save(@"Dark.png");
Il valore alfa può variare da 0 a 255. 0 significa che l'effetto è completamente trasparente con conseguente immagine originale. 255 significa che l'effetto è completamente opaco risultante in un rettangolo nero pieno. Qui, l'effetto è mostrato con 128.
- 1. jstree jquery come iterare attraverso tutti i nodi
- 2. E 'possibile iterare attraverso tutti i nodi con py2neo
- 3. È possibile iterare attraverso i parametri del metodo in C#?
- 4. Ciclo Java attraverso i pixel in un'immagine?
- 5. matlab come iterare attraverso tutti gli oggetti in uno spazio di lavoro
- 6. iterare attraverso i risultati record attivo - Ruby on Rails
- 7. Iterare attraverso più elenchi ordinati nell'ordine
- 8. parsing json dictionary in javascript per iterare attraverso i tasti
- 9. Come iterare attraverso due oggetti IEnumerable contemporaneamente?
- 10. È possibile iterare attraverso JSONArray?
- 11. iterare attraverso array di hash in Ruby
- 12. È possibile iterare attraverso i documenti memorizzati nell'Indice Lucene?
- 13. Somma pixel shader efficiente di tutti i pixel
- 14. zip() alternativa per iterare attraverso due iterables
- 15. È possibile iterare attraverso due elenchi contemporaneamente in Underscore.js?
- 16. Iterare attraverso una stringa parola per parola
- 17. C++: Iterating attraverso tutti i membri di un oggetto?
- 18. Come iterare attraverso gli elementi di una vista
- 19. Come estendere bitmap in WPF senza livellare i pixel
- 20. Come per schiarire o scurire una bitmap
- 21. Vim ricerca attraverso tutti i buffer esistenti
- 22. Iterare in modo ricorsivo attraverso i nodi in una vista ad albero?
- 23. come iterare attraverso più opzioni di selezione con jquery
- 24. Passaggio di colori attraverso un pixel shader in HLSL
- 25. Usare PIL per rendere trasparenti tutti i pixel bianchi?
- 26. Come conservare la sessione attraverso tutti i test su phpunit?
- 27. Iterate attraverso tutti i possibili valori a virgola mobile
- 28. Come testare un'unione senza effettivamente unire prima
- 29. Shellscript che scorre attraverso tutti i file in una cartella
- 30. Trova tutti i possibili percorsi attraverso un labirinto
utilizzare una libreria per questo? Hai cercato un po '? Se usi WPF, sono sicuro che c'è qualcosa che puoi fare. –
Sto usando i moduli di Windows. – Patryk
Forse sovrapponi un elemento semitrasparente sopra l'immagine? – David