Mam urządzenie UII, chcę zmienić kolor jego określonego piksela, powiedzmy 224 x 200. piksela. Jak mogę to zrobić? Czy to możliwe? Z góry dziękuję.iPhone: Jak zmienić kolor określonego piksela UIImage?
6
A
Odpowiedz
8
Po wielu poszukiwaniach przez cały dzień dostałem dokładne rozwiązanie, choć znalazłem wiele, ale żaden z nich nie zadziałał. Oto co mam, to działa bez zarzutu -:
// 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
Jest to możliwe z podstawową grafiką. link ma kod do konwersji obrazu na skalę szarości. Możesz go zmodyfikować do swoich potrzeb.
0
CGContextRef to wszystko. Możesz zrobić z tego różnego rodzaju magię.
Here are some slides które dotyczą podstawowych zastosowań.
Powiązane problemy
- 1. Uzyskaj kolor piksela UIImage
- 2. Jak odczytać kolor piksela ekranu
- 3. Jak zmienić kolor piksela obrazu w języku C# .NET
- 4. Jak uzyskać kolor piksela w UIView?
- 5. Jak mogę zmienić kolor określonego pojemnika na histogramie?
- 6. iPhone SDK - Jak narysować UIImage na inną UIImage?
- 7. Jak zmienić domyślny kolor przycisku na telefonie iPhone?
- 8. iPhone: Jak zmienić kolor czcionki w UITableViewCell po wybraniu?
- 9. Jak zmienić kolor tła wskaźnika w telefonie iPhone X?
- 10. Jak zmienić kolor uchwytów EditText?
- 11. iphone - pojedynczy UIImage wielu UIImageView?
- 12. iPhone CoreText: Znajdź współrzędne piksela podciągu
- 13. Jak zmienić kolor JSeparatora?
- 14. Jak zmienić kolor UIFont?
- 15. Jak zmienić kolor JProgressBar?
- 16. Swift Jak zmienić kolor tytułu UIAlertController Kolor
- 17. Jak mogę włączyć (zmienić kolor) pojedynczego piksela przez współrzędne w WPF
- 18. Jak mogę pobrać kolor piksela na moim pulpicie? (Linux)
- 19. Jak uzyskać kolor piksela w X, Y przy użyciu C#?
- 20. Zmień kolor pojedynczego piksela - Idź do obrazu lg
- 21. Kolor przycisku na pasku nawigacyjnym - iPhone
- 22. zmiana koloru piksela bitmapy
- 23. Iphone UIButton kolor tła
- 24. Jak zmienić kolor paska przewijania
- 25. Jak zmienić kolor elementów QStringListModel?
- 26. Jak zmienić kolor tekstu JButton'a
- 27. Jak zmienić kolor tła JOptionPane?
- 28. Jak zmienić kolor tła TextBox?
- 29. Jak zmienić kolor obramowania planszy?
- 30. Jak zmienić kolor ścieżek SwitchCompat
Jaka jest wartość pixelCountForCalculatingAvgColor i avgRGBsOfPixel? To się nie kompiluje. –
Hej, nie wiedziałem, gdzie i przy której linii faktycznie ustawiamy/zmieniamy kolor piksela? Proszę wyjaśnić: –
@Vipul J możesz usunąć te niezdefiniowane rzeczy lub jaka jest wartość pixelCountForCalculatingAvgColor i wartości tablic avgRGBsOfPixel? –