Ich habe ein UIImage, ich möchte die Farbe des jeweiligen Pixels ändern, sagen 224 x 200. Pixel. Wie kann ich das machen? Ist es überhaupt möglich zu tun? Danke im Voraus.iPhone: Wie ändere ich die Farbe eines bestimmten Pixels eines UIImage?
6
A
Antwort
8
Nachdem ich viel nach einem kompletten Tag gesucht hatte, bekam ich die genaue Lösung, obwohl ich viele fand, aber keiner von ihnen funktionierte. Hier ist, was ich habe, es funktioniert einwandfrei -:
// 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
Es ist möglich mit Core-Grafik. Die link verfügt über Code, um Ihr Bild in Graustufen zu konvertieren. Sie können es für Ihre Bedürfnisse ändern.
0
CGContextRef macht all dies. Sie können damit alle Arten von Magie machen.
Here are some slides, die über die Grundnutzung gehen.
Verwandte Themen
- 1. CIImage: Farbe eines bestimmten Pixels einstellen
- 2. Wie ändere ich die Farbe eines bestimmten JButton
- 3. Wie ändere ich die Farbe eines QGraphicsTextItems
- 4. iOS - erkennen Sie die Farbe eines Pixels?
- 5. Wie erhält man die Farbe eines Pixels in einer UIView?
- 6. Get x, y Position eines bestimmten Pixels
- 7. Wie ändere ich die Farbe von UIImage in iOS?
- 8. Wie ändere ich den versteckten Status eines UIImage innerhalb eines Arrays in swift?
- 9. Ermitteln der Farbe eines Pixels in einer Winforms-Anwendung
- 10. Wie ändere ich die Farbe eines Scheitelpunkts statt aller?
- 11. Wie ändere ich die Farbe eines textArea zur Laufzeit?
- 12. Wie ändere ich die Farbe eines Cocos2d MenuItem?
- 13. Wie ändere ich die Hintergrundfarbe eines SFSafariViewControllers?
- 14. Wie ändere ich die Farbe eines bestimmten Bereichs auf Google map api v2 in android
- 15. Überlagern eines UIImage mit einer Farbe?
- 16. Entwickeln eines Tracking-Pixels
- 17. Wie ändere ich die Textfarbe eines JButton?
- 18. Wie bekomme ich die Farbe eines Pixels bei X, Y mit C#?
- 19. Wie stelle ich die Farbe eines einzelnen Pixels in einer Direct3D-Textur ein?
- 20. Wie kann ich die Farbe eines Pixels auf meinem Desktop erfassen? (Linux)
- 21. Wie ändere ich die Farbe eines Elements innerhalb eines div beim Rollover mit Javascript?
- 22. Wie ändere ich die Farbe eines Hyperlinks beim Mouseover eines Bildes?
- 23. Schneiden eines UIImage auf dem iPhone
- 24. Farbe des Pixels ist falsch nur für iPhone 6 Simulator
- 25. Wie ändere ich die Größe eines UISwitch?
- 26. Wie ändere ich die Werte eines Arrays?
- 27. Wie ändere ich die Textfarbe eines Buttons?
- 28. Wie ändere ich die Reichweite eines Feldes?
- 29. Wie ändere ich die Größe eines AlertDialog.Builders?
- 30. Wie ändere ich die Standardhöhe eines BottomSheetDialogs?
Was ist Wert von pixelCountForCalculatingAvgColor und avgRGBsOfPixel? Es ist nicht compiling .. –
Hey Hallo, ich habe nicht verstanden, wo oder bei welcher Zeile wir tatsächlich setzen/ändern Pixelfarbe? Bitte erklären Sie –
@Vipul J können Sie diese undefinierten Dinge löschen oder was ist dieser Wert von pixelCountForCalculatingAvgColor und Array-Werte von avgRGBsOfPixel? –