दिलचस्प पोस्ट
कैसे JSON के साथ जटिल वस्तुओं की एक सरणी पोस्ट करने के लिए, ASP.NET MVC नियंत्रक के लिए jQuery? एक अमूर्त वर्ग के एक निर्माता हो सकता है? jQuery UI स्वत: पूर्ण उपयोग प्रारंभ होता है जावास्क्रिप्ट के साथ एचटीएमएल तत्व डालना मुझे Scala में वेक्टर का चयन कब करना चाहिए? IOS पर मौजूदा SQLite डेटाबेस का उपयोग करें और एक्सेस करें निर्दिष्ट बच्चे के पास पहले से ही माता-पिता थे। आपको पहले बच्चे के माता-पिता पर removeView () को कॉल करना होगा सबमिट बटन का उपयोग किए बिना ट्रिगर मानक एचटीएमएल 5 सत्यापन (फॉर्म)? GetViewTypeCount और getItemViewType तरीकों ArrayAdapter का चयनित पाठ जावास्क्रिप्ट / JQuery की स्थिति की गणना करें? कोणीय। js में जेसनॉन $ http.jsonp () प्रतिक्रिया पार्सिंग मैं अंतर्निहित दृश्य स्टूडियो डिबगर सर्वर में वेब। डीबग। कॉन्फिग का उपयोग कैसे कर सकता / सकती हूं? log4j: सॉकेट अपैपर का उपयोग कैसे करें? पथ ड्राइंग का उपयोग कर पाठ जोड़ने का एक तरीका है गतिशील रूप से स्प्रिंग सिक्योरिटी में <intercept-url> एक्सेस विशेषता मान कैसे तय है?

मैं iPhone पर प्रोग्राम को एक छवि कैसे दिखाऊंगा?

मैं एक रंग संदर्भ के साथ एक छवि टिंट करना चाहूंगा परिणाम फ़ोटोशॉप में गुणा मिश्रण मोड की तरह दिखाई देना चाहिए, जहां सफेद रंग को टिंट से बदल दिया जाएगा:

वैकल्पिक शब्द

मैं रंग का मूल्य लगातार बदल रहा हूँ

का पालन करें: मैं यह करने के लिए अपने ImageView drawRect में विधि डाल दिया होगा: विधि, सही?

हमेशा की तरह, एक कोड स्निपेट मेरी समझ में काफी सहायता करेगा, जैसा कि एक लिंक के विपरीत है।

अद्यतन: कोड के साथ एक UIImageView subclassing Ramin सुझाव दिया।

मैंने इस दृश्य को डाल दिया हैडडलोड: मेरा दृश्य नियंत्रक:

[self.lena setImage:[UIImage imageNamed:kImageName]]; [self.lena setOverlayColor:[UIColor blueColor]]; [super viewDidLoad]; 

मैं छवि देख रहा हूँ, लेकिन यह रंगा हुआ नहीं है। मैंने अन्य छवियों को लोड करने, आईबी में छवि सेट करने, और setNeedsDisplay कॉल करने का भी प्रयास किया: मेरे दृश्य नियंत्रक में

अद्यतन : ड्रॉरेक्ट: को बुलाया नहीं जा रहा है।

अंतिम अपडेट: मुझे एक पुरानी परियोजना मिली, जिसमे एक छविदृश्य ठीक से स्थापित किया गया था, इसलिए मैं रामिने के कोड का परीक्षण कर सकता था और यह एक जादू की तरह काम करता है!

अंतिम, अंतिम अपडेट:

आप में से केवल कोर ग्राफिक्स के बारे में सीख रहे हैं, यहां सबसे आसान चीज है जो शायद काम कर सकती है

आपके उपवर्गित UIView में:

 - (void)drawRect:(CGRect)rect { CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetFillColor(context, CGColorGetComponents([UIColor colorWithRed:0.5 green:0.5 blue:0 alpha:1].CGColor)); // don't make color too saturated CGContextFillRect(context, rect); // draw base [[UIImage imageNamed:@"someImage.png"] drawInRect: rect blendMode:kCGBlendModeOverlay alpha:1.0]; // draw image } 

Solutions Collecting From Web of "मैं iPhone पर प्रोग्राम को एक छवि कैसे दिखाऊंगा?"

पहले आप UIImageView उप-वर्ग और drawRect विधि ओवरराइड करना चाहते हैं। रंग को बदलते समय मिश्रण को रंग और एक कस्टम सेटर रखने के लिए आपकी कक्षा को एक UIColor संपत्ति (चलो इसे ओवरले रंग कहते हैं) की आवश्यकता होती है। कुछ इस तरह:

 - (void) setOverlayColor:(UIColor *)newColor { if (overlayColor) [overlayColor release]; overlayColor = [newColor retain]; [self setNeedsDisplay]; // fires off drawRect each time color changes } 

ड्रॉरेक्ट विधि में आप पहले छवि को आकर्षित करना चाहेंगे, फिर आप उस रंग से भरे हुए एक आयत के साथ इसे ओवरले करना चाहेंगे, जिसमें आप उचित मिश्रण मोड के साथ चाहते हैं, ऐसा कुछ:

 - (void) drawRect:(CGRect)area { CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSaveGState(context); // Draw picture first // CGContextDrawImage(context, self.frame, self.image.CGImage); // Blend mode could be any of CGBlendMode values. Now draw filled rectangle // over top of image. // CGContextSetBlendMode (context, kCGBlendModeMultiply); CGContextSetFillColor(context, CGColorGetComponents(self.overlayColor.CGColor)); CGContextFillRect (context, self.bounds); CGContextRestoreGState(context); } 

आम तौर पर ड्राइंग को अनुकूलित करने के लिए आप वास्तविक ड्राइंग को केवल आकर्षित करने के लिए पारित क्षेत्र में सीमित कर देंगे, लेकिन जब से पृष्ठभूमि की छवि को प्रत्येक बार रंग बदलना पड़ता है, संभव है कि यह पूरी तरह से ताज़ा करने की आवश्यकता होगी।

इसका उपयोग करने के लिए ऑब्जेक्ट का एक उदाहरण बनाने के लिए, image संपत्ति (UIImageView से विरासत में मिली) तस्वीर और overlayColor को एक UIColor मान (मिश्रण स्तरों को अल्फा मूल्य बदलकर समायोजित किया जा सकता है जिसे आप पास करते हैं) को बदल सकते हैं।

IOS7 में, उन्होंने UIImageView और renderingMode पर UIImage पर टिंटकॉलर प्रॉपर्टी पेश की है। IOS7 पर UIImage को टिंट करने के लिए, आपको बस यही करना है:

 UIImageView* imageView = … UIImage* originalImage = … UIImage* imageForRendering = [originalImage imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; imageView.image = imageForRendering; imageView.tintColor = [UIColor redColor]; // or any color you want to tint it with 

बस एक त्वरित स्पष्टीकरण (इस विषय पर कुछ शोध के बाद) एप्पल डॉक्टर यहां स्पष्ट रूप से बताता है कि:

UIImageView क्लास प्रदर्शन के लिए अपनी छवियों को आकर्षित करने के लिए अनुकूलित है। UIImageView drawRect: नहीं कॉल करता है drawRect: इसके उपवर्गों का तरीका यदि आपके उपवर्ग को कस्टम ड्राइंग कोड शामिल करने की आवश्यकता है, तो आपको इसके बजाय UIView वर्ग को उपवर्ग करना चाहिए।

इसलिए किसी भी समय UIImageView उपवर्ग में उस विधि को ओवरराइड करने का प्रयास करने का प्रयास न करें। इसके बजाय UIView साथ आरंभ करें

मैं अल्फा के साथ एक छवि टिंट करना चाहता था और मैंने निम्नलिखित वर्ग बनाया अगर आपको इसके साथ कोई समस्या मिल जाए तो कृपया मुझे बताएं

मैंने अपना क्लास CSTintedImageView नाम दिया है और इसे UIView से विरासत में मिली है क्योंकि UIImageView drawRect: कॉल नहीं करता है drawRect: विधि, जैसा कि पिछले उत्तरों में उल्लिखित है मैंने एक नामित initializer सेट किया है जो UIImageView क्लास में पाया गया है।

उपयोग:

 CSTintedImageView * imageView = [[CSTintedImageView alloc] initWithImage:[UIImage imageNamed:@"image"]]; imageView.tintColor = [UIColor redColor]; 

CSTintedImageView.h

 @interface CSTintedImageView : UIView @property (strong, nonatomic) UIImage * image; @property (strong, nonatomic) UIColor * tintColor; - (id)initWithImage:(UIImage *)image; @end 

CSTintedImageView.m

 #import "CSTintedImageView.h" @implementation CSTintedImageView @synthesize image=_image; @synthesize tintColor=_tintColor; - (id)initWithImage:(UIImage *)image { self = [super initWithFrame:CGRectMake(0, 0, image.size.width, image.size.height)]; if(self) { self.image = image; //set the view to opaque self.opaque = NO; } return self; } - (void)setTintColor:(UIColor *)color { _tintColor = color; //update every time the tint color is set [self setNeedsDisplay]; } - (void)drawRect:(CGRect)rect { CGContextRef context = UIGraphicsGetCurrentContext(); //resolve CG/iOS coordinate mismatch CGContextScaleCTM(context, 1, -1); CGContextTranslateCTM(context, 0, -rect.size.height); //set the clipping area to the image CGContextClipToMask(context, rect, _image.CGImage); //set the fill color CGContextSetFillColor(context, CGColorGetComponents(_tintColor.CGColor)); CGContextFillRect(context, rect); //blend mode overlay CGContextSetBlendMode(context, kCGBlendModeOverlay); //draw the image CGContextDrawImage(context, rect, _image.CGImage); } @end 

यह बहुत उपयोगी हो सकता है: फ़ोटोशॉपफ्रेमवर्क उद्देश्य-सी पर छवियों को हेरफेर करने के लिए एक शक्तिशाली लाइब्रेरी है एडोब फोटोशॉप उपयोगकर्ता परिचित हैं, इसी तरह की कार्यक्षमताओं को लाने के लिए इसे विकसित किया गया था उदाहरण: RGB 0-255 का उपयोग करके रंग सेट करें, मिश्रण फ़िलर्स, परिवर्तनों को लागू करें …

खुला स्रोत है, यहां परियोजना लिंक है: https://sourceforge.net/projects/photoshopframew/

 UIImage * image = mySourceImage; UIColor * color = [UIColor yellowColor]; UIGraphicsBeginImageContext(image.size); [image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height) blendMode:kCGBlendModeNormal alpha:1]; UIBezierPath * path = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0, image.size.width, image.size.height)]; [color setFill]; [path fillWithBlendMode:kCGBlendModeMultiply alpha:1]; //look up blending modes for your needs UIImage * newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); //use newImage for something 

यहां छवि टिंटिंग को लागू करने का एक और तरीका है, खासकर यदि आप पहले से कुछ और के लिए क्वार्ट्जकोर का उपयोग कर रहे हैं यह एक समान प्रश्न के लिए मेरा उत्तर था

आयात क्वार्टजकोर:

 #import <QuartzCore/QuartzCore.h> 

पारदर्शी CALayer बनाएं और इसे छवि के लिए एक उपपरिवर्तक के रूप में जोड़ें जिसे आप चाहते हैं:

 CALayer *sublayer = [CALayer layer]; [sublayer setBackgroundColor:[UIColor whiteColor].CGColor]; [sublayer setOpacity:0.3]; [sublayer setFrame:toBeTintedImage.frame]; [toBeTintedImage.layer addSublayer:sublayer]; 

अपने परियोजनाओं फ्रेमवर्क सूची में क्वार्ट्ज़कोर जोड़ें (यदि वह पहले से मौजूद नहीं है), अन्यथा आप इस तरह कम्पाइलर त्रुटियां प्राप्त करेंगे:

 Undefined symbols for architecture i386: "_OBJC_CLASS_$_CALayer" 

उन लोगों के लिए जो एक UIImageView वर्ग subclass करने की कोशिश करते हैं और "drawRect: अटक नहीं किया जा रहा है" पर अटक जाते हैं, ध्यान दें कि आपको इसके बजाय एक UIView वर्ग को subclass करना चाहिए, क्योंकि UIImageView क्लासेस के लिए, "drawRect:" विधि नहीं कहा जाता है। यहां अधिक पढ़ें: आकर्षित मेरे ऊप-भाग में UIImageView में नहीं बुलाया जा रहा है

स्विफ्ट 2.0 के लिए,

  let image: UIImage! = UIGraphicsGetImageFromCurrentImageContext() imgView.image = imgView.image!.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate) imgView.tintColor = UIColor(red: 51/255.0, green: 51/255.0, blue: 51/255.0, alpha: 1.0) 

मैं सोच सकता हूं कि केवल वांछित रंग के साथ एक आयताकार ज्यादातर पारदर्शी दृश्य बनाने और इसे अपने छवि दृश्य पर एक सबव्यू के रूप में जोड़कर रखना होगा। मुझे यकीन नहीं है कि यह वास्तव में छवि को जिस तरह से आप कल्पना करता है, उसमें रंगीन होगा, मुझे यकीन नहीं है कि आप एक छवि को कैसे छोडेंगे और दूसरों के साथ चुनिंदा रंगों को चुनेंगे … मेरे लिए बहुत ही महत्वाकांक्षी आवाज …

उदाहरण के लिए:

 UIImageView *yourPicture = (however you grab the image); UIView *colorBlock = [[UIView alloc] initWithFrame:yourPicture.frame]; //Replace RGB and A with values from 0 - 1 based on your color and transparency colorBlock.backgroundColor = [UIColor colorWithRed:R green:G blue:B alpha:A]; [yourPicture addSubView:colorBlock]; 

UIColor के लिए दस्तावेज़ीकरण:

 colorWithRed:green:blue:alpha: Creates and returns a color object using the specified opacity and RGB component values. + (UIColor *)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha Parameters red - The red component of the color object, specified as a value from 0.0 to 1.0. green - The green component of the color object, specified as a value from 0.0 to 1.0. blue - The blue component of the color object, specified as a value from 0.0 to 1.0. alpha - The opacity value of the color object, specified as a value from 0.0 to 1.0. Return Value The color object. The color information represented by this object is in the device RGB colorspace. 

इसके अलावा आप प्रदर्शन के लिए संमिश्र छवि को कैशिंग पर विचार करना चाह सकते हैं और इसे drawRect में प्रस्तुत कर सकते हैं :, तो उसे अपडेट किया गया है यदि कोई गंदा झंडा वास्तव में गंदे है। जब आप इसे अक्सर बदल सकते हैं, ऐसे मामले हो सकते हैं जहां ड्रॉ आ रहे हैं और आप गंदे नहीं हैं, इसलिए आप कैश से ताज़ा कर सकते हैं। यदि प्रदर्शन के मुकाबले मेमोरी अधिक समस्या है, तो आप इस पर ध्यान नहीं दे सकते हैं 🙂

मेरे पास एक लाइब्रेरी है जिसे मैं खोलता हूं: ios-image-filters