Tôi có UIImage, tôi muốn thay đổi màu của pixel cụ thể của nó, nói 224 x 200 pixel. Tôi có thể làm cái này như thế nào? Thậm chí có thể làm được không? Cảm ơn trước.iPhone: Cách thay đổi màu sắc của một pixel cụ thể của UIImage?
6
A
Trả lời
8
Sau khi tìm kiếm rất nhiều cho một ngày hoàn chỉnh, tôi đã nhận được giải pháp chính xác, mặc dù tôi đã tìm thấy nhiều nhưng không có ai trong số họ làm việc. Dưới đây là những gì tôi đã có, nó hoạt động hoàn hảo -:
// 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
Có thể có đồ họa lõi. link có mã để chuyển đổi hình ảnh của bạn thành thang màu xám. Bạn có thể sửa đổi nó cho nhu cầu của bạn.
0
CGContextRef thực hiện tất cả điều này. Bạn có thể làm tất cả các loại phép thuật với điều này.
Here are some slides vượt quá mức sử dụng cơ bản.
Các vấn đề liên quan
- 1. Làm cho mỗi pixel của một hình ảnh có màu sắc cụ thể trong suốt
- 2. UIRefreshControl thay đổi màu sắc của UIActivityIndicatorView
- 3. Thay đổi màu sắc động của jQuery
- 4. Thay đổi chiều rộng và màu sắc của thanh cuộn trong UITableView, iphone
- 5. cách thay đổi màu sắc của một khu vực cụ thể trên bản đồ api v2 của Google trong android
- 6. Thay đổi màu sắc của một seekbar trên onProgressChanged
- 7. Thay đổi màu sắc của một svg trong qt
- 8. Có thể thay đổi màu của một pixel riêng lẻ bằng Python không?
- 9. Thay đổi màu sắc của một neo khi nhấp
- 10. cách thay đổi màu sắc của bảng trong vaadin
- 11. Phát hiện màu sắc của iPhone/iPod
- 12. Làm thế nào để thay đổi màu sắc của một thanh công cụ ngày tháng jquery
- 13. Cách lấy màu của pixel trong UIView?
- 14. Hình ảnh WPF, thay đổi màu của pixel
- 15. Thay đổi màu pixel Python
- 16. Thay đổi tiến trình Màu sắc của thiết bị
- 17. Thay đổi màu sắc của khung hình trong matplotlib
- 18. Thay đổi màu sắc của combobox bị vô hiệu hóa
- 19. Thay đổi màu sắc của bàn phím cho UITextField
- 20. CSS thay đổi màu sắc của thẻ hr
- 21. JLabel thay đổi màu sắc
- 22. Thay đổi màu sắc của thanh tiến trình # #
- 23. Làm thế nào tôi có thể thay đổi màu sắc của một clearButton UITextField?
- 24. C# excel cách thay đổi màu của một hàng cụ thể
- 25. Cách tạo một UIImage 1x1 màu trên iPhone động?
- 26. Thay đổi màu sắc trong Eclipse Diff
- 27. Màu sắc của video sai khi được tạo từ UIImage của các tệp PNG
- 28. Cách thay đổi màu bg của JXTaskPaneContainer
- 29. Thay đổi màu của Bàn phím trong iphone
- 30. Thay đổi màu sắc biên giới EditText
giá trị của pixelCountForCalculatingAvgColor và avgRGBsOfPixel là gì? Nó không biên dịch .. –
Xin chào, tôi không hiểu ở đâu hoặc tại dòng nào chúng tôi đang thực sự thiết lập/thay đổi màu pixel? Vui lòng giải thích –
@Vipul J bạn có thể xóa những thứ không xác định này hoặc giá trị pixelCountForCalculatingAvgColor và giá trị mảng của avgRGBsOfPixel không? –