Sto cercando libreria iOS e Android per (preferibilmente) o algoritmo che mi aiuterebbe a sfumare l'immagine in modo simile a come viene gestita Photoshop. L'illustrazione seguente mostra l'effetto desiderato dell'algoritmo. Non mi interessano i limiti di sfumatura dell'immagine, solo i bordi alfa. Ho cercato un algoritmo in grado di farlo per pochi giorni senza fortuna. Qualsiasi aiuto sarà apprezzato.Algoritmo e libreria iOS e Android per bordi sfumati delle immagini simili a quelli di Photoshop
risposta
Supponendo di avere canale alfa (come su foto con sfondo trasparente) sembra che matrice sfocatura regolare convultion dovrebbe soddisfare voi.
Tuttavia, anziché passare attraverso i canali RGB, è necessario passare solo attraverso il canale ALPHA.
Controllare il filtro di sfocatura qui: https://en.wikipedia.org/wiki/Kernel_%28image_processing%29
Siete interessati in scatola di sfocatura/sfocatura gaussiana. Tuttavia, per rendere questo effetto più fluido, è necessario utilizzare una matrice di dimensioni maggiori.
La ragione per cui l'algoritmo soddisferà le tue esigenze è che se tutti i pixel circostanti hanno l'alfa 0 - sarà ancora 0. Se 255 - rimarrà 255. Solo i pixel nell'area del bordo tra l'alfa 0/255 saranno interessati .
Edit:
prega di consultare questo violino con bicromato di potassio (in FF che è molto lento): http://jsfiddle.net/5L40ms65/
È possibile dare uno sguardo nella algoritmo alla fine del codice. Poiché attuazione Ho notato che: - nessuna necessità di sfocatura se tutti i pixel neigbour sono 255 o 0 (canale alfa) - è richiesto di sfocatura anche RGB in altri casi
In generale:
RADIUS = 2 (makes total width of matrix = 5)
For x = 0..width
for y = 0..width
if all pixels in square of radius 2 are alpha = 0
do nothing
elsif all pixels in square have alpha = 255
do nothing
else
pixel[x][y].RGB = average RGB of adjacent pixels where alpha != 0
pixel[x][y].ALPHA = average ALPHA in square
esempio risultato con raggio = 2
Naturalmente questo è piuttosto programma di concetto, c'è un sacco di posto per Memoizzazione e messa a punto di questo script però dovrebbe fare una grande quadro chiaro
Sarò felice di concederti una taglia se elabori maggiormente la tua risposta e magari fornisci un breve esempio di come dovrei farlo. –
È possibile modificare l'alfa del bordo in base al colore di sfondo della vista.
var r:Float!
var g:Float!
var b:Float!
var a:Float!
if self.view.backgroundColor.getRed(red:r, green:g, blue:b, alpha:a) {
var imgv = UIImageView(frame: CGRect(x:100, y:100, width:100, height:100))
imgv.image = UIImage(named:"name")
imgv.layer.borderWidth = 2.0
imgv.layer.borderColor = UIColor(red:r, green:g, blue:b, alpha:0.5).CGColor
imgv.layer.cornerRadius = imgv.frame.size.width/2
imgv.clipsToBounds = true
}else{
//Could not get the RGB of background color
}
È possibile che si verifichino errori in questo codice perché non l'ho ancora testato.
Non applica il bordo ai bordi dell'immagine, solo per la cornice della vista dell'immagine. –
Vuoi cambiare l'immagine stessa non il contenitore che la mostra? –
"Non mi interessano i limiti di sfumatura dell'immagine, solo i bordi alfa." –
- 1. Libreria di elaborazione delle immagini per Android?
- 2. Libreria di modifica delle immagini per Android
- 3. Caratteri giapponesi simili a quelli cinesi su Android
- 4. Buon algoritmo per trovare aree simili nelle immagini?
- 5. Bordi frastagliati su immagini renderizzate in Android
- 6. Strumenti di prototipazione rapida delle applicazioni per Android e iOS
- 7. Quale libreria di memorizzazione immagini per iOS?
- 8. Pulsanti a discesa/Spinner simili a quelli delle specifiche di progettazione di Google
- 9. Algoritmo di raccomandazione (e implementazione) per la ricerca di oggetti e utenti simili
- 10. Quale algoritmo utilizza Photoshop per desaturare un'immagine?
- 11. Libreria/API di riconoscimento immagini per iPhone/Android
- 12. Algoritmo per l'intersezione dei bordi?
- 13. Image Hash per immagini molto simili
- 14. Alias di simboli deboli su OS X simili a quelli su Linux o equivalenti più simili?
- 15. che identifica immagini simili
- 16. Confronto immagini per immagini vettoriali (basato sul rilevamento dei bordi)?
- 17. Altalena: come creare finestre non rettangolari con bordi sfumati?
- 18. risoluzione dello schermo per Android e iPhone design in Photoshop
- 19. Libreria di elaborazione immagini Android
- 20. Libreria Picasso e immagini GridView
- 21. Convenzioni di denominazione delle immagini iOS
- 22. Come identificare immagini simili nonostante alcune immagini siano state ritagliate?
- 23. Algoritmo per creare immagini a mezzitoni?
- 24. Rilevamento Immagini simili
- 25. Dimensioni e nomi delle icone e avvio delle immagini in Xcode 5, ios 7
- 26. come unire Immagini e imporre a vicenda
- 27. Come utilizzare l'algoritmo di smusso di corrispondenza per la ricerca di immagini simili
- 28. libreria editor di immagini Javascript
- 29. Libreria Java per confrontare la somiglianza delle immagini
- 30. Ridimensionamento e ritaglio delle immagini con ImageResizer
http://stackoverflow.com/a/31142908/2194046 controlla il mio codice, Piegherà qualsiasi UIImmagine sagomata. :)) – zurakach