Ho una UIImage, voglio cambiare il colore del suo particolare pixel, diciamo 224 x 200 pixel. Come posso fare questo? È persino possibile fare? Grazie in anticipo.iPhone: come cambiare il colore di un particolare pixel di una UIImmagine?
6
A
risposta
8
Dopo aver cercato molto per un giorno completo, ho ottenuto la soluzione esatta, anche se ne ho trovati molti ma nessuno di loro ha funzionato. Ecco quello che ho ottenuto, funziona perfettamente -:
// This method creates an image by changing individual pixels of an image. Color of pixel has been taken from an array of colours('avgRGBsOfPixel')
-(void)createTexture{
self.sampleImage = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"whitebg.jpg"]];
CGRect imageRect = CGRectMake(0, 0, self.sampleImage.image.size.width, self.sampleImage.image.size.height);
UIGraphicsBeginImageContext(sampleImage.image.size);
CGContextRef context = UIGraphicsGetCurrentContext();
//Save current status of graphics context
CGContextSaveGState(context);
CGContextDrawImage(context, imageRect, sampleImage.image.CGImage);
// And then just draw a point on it wherever you want like this:
// CGContextFillRect(context, CGRectMake(x,y,1,1));
//Fix error according to @gsempe's comment
int pixelCount =0;
for(int i = 0 ; i<sampleImage.image.size.width ; i++){
for(int j = 0 ; j<sampleImage.image.size.height ; j++){
pixelCount++;
int index = pixelCount/pixelCountForCalculatingAvgColor;
// NSLog(@"Index : %d", index);
if(index >= [avgRGBsOfPixel count]){
index = [avgRGBsOfPixel count] -1;
NSLog(@"Bad Index");
}
// if(pixelCount >9999){
// pixelCount = 9999;
// NSLog(@"Bad Index");
// }
UIColor *color = [avgRGBsOfPixel objectAtIndex:index];
float red ,green, blue ,alpha ;
[color getRed:&red green:&green blue:&blue alpha:&alpha];
CGContextSetRGBFillColor(context, red , green, blue , 1);
CGContextFillRect(context, CGRectMake(i,j,1,1));
}
}
// Then just save it to UIImage again:
CGContextRestoreGState(context);
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
[self.iv setImage:img];
}
0
È possibile con la grafica di base. Lo link ha il codice per convertire l'immagine in scala di grigi. Puoi modificarlo secondo le tue necessità.
0
CGContextRef fa tutto questo. Puoi fare ogni sorta di magia con questo.
Here are some slides che vanno oltre l'utilizzo di base.
Problemi correlati
- 1. Sovrapposizione di una UIImmagine con un colore?
- 2. Cambiare il colore di alcuni pixel in un UIImage
- 3. Cambiare il colore dei pixel Python
- 4. come cambiare il colore di un QGraphicsTextItem
- 5. Come cambiare il colore di un JSeparator?
- 6. iOS: rileva il colore di un pixel?
- 7. come cambiare il colore di una particolare area su Google map api v2 in android
- 8. Come ottenere il colore di un pixel in un UIView?
- 9. iPhone: Sfocatura UIImmagine
- 10. Come cambiare il colore di sfondo dell'intestazione di una QTableView
- 11. iPhone Obiettivo C: come ottenere il colore di un pixel del punto toccato su UIImageView?
- 12. Come accedere al colore dei pixel all'interno di una bitmap?
- 13. Come posso cambiare il colore predefinito del pulsante su iPhone?
- 14. Come cambiare il colore di UITextview UIDataDetectorTypeLink?
- 15. È possibile cambiare il colore di un singolo pixel in Python?
- 16. Come cambiare il colore di sfondo di un controllo TreeView
- 17. Cambiare il colore di un testo in una JLabel
- 18. Come cambiare il colore di sfondo di un NSPopupButton?
- 19. xterm: come cambiare il colore di sfondo?
- 20. Come cambiare il colore di sfondo FAB
- 21. Come cambiare il colore di una popover Bootstrap in JavaScript
- 22. Come cambiare il colore dei pixel di un'immagine in C# .NET
- 23. Come cambiare il colore del bordo inferiore di UINavigationBar?
- 24. Come cambiare il colore di sfondo attorno a un DialogFragment?
- 25. Come cambiare il colore di sfondo su un pannello Java?
- 26. Come cambiare il colore di un UIBezierPath in Swift?
- 27. Come cambiare il colore di un WPF `<Separator />`?
- 28. Come posso cambiare il colore di un UITextField clearButton?
- 29. Come cambiare il colore della cella di un jquery datepicker
- 30. Come cambiare il colore di un pulsante in Android Studio
Qual è il valore di pixelCountForCalculatingAvgColor e avgRGBsOfPixel? Non è in fase di compilazione .. –
Ciao, non ho capito dove oa quale riga stiamo effettivamente impostando/cambiando il colore dei pixel? Per favore, spiega –
@Vipul J puoi cancellare queste cose non definite o qual è il valore di pixelCountForCalculatingAvgColor e i valori dell'array di avgRGBsOfPixel? –