Funst der Code denn bei dir/euch?
UIColor aus CMY-Werten?
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen
-
-
ist denn
CGColorRef == CGColor ?
Gruß
Claus2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.
Pre-Kaffee-Posts sind mit Vorsicht zu geniessen -
-
Thallius schrieb:
ist denn
CGColorRef == CGColor ?
Das ist doch bei den C-Klassen (fast) immer so, z. B. CGContextRef, CFStringRef, .... Die dahinterliegenden Strukturen sind ja opak.„Meine Komplikation hatte eine Komplikation.“ -
Mir fiel das nur spontan auf als ich mit 3 Bier und 2 Reisschnaps befüllt vom Chinesen nach Hause gekommen bin. Zu mehr bin ich gerade eh nicht fähig
Gruß
Claus2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.
Pre-Kaffee-Posts sind mit Vorsicht zu geniessen -
Das muss doch irgendwie gehen!?
-
Liest Du eigentlich auch mal die Doku? Da steht doch klar und deutlich:
Creating Device Color Spaces (Deprecated in Mac OS X v10.4)
For historical purposes, these are the functions that create device-dependent color spaces in Mac OS X v10.3 and earlier:
CGColorSpaceCreateDeviceGray for DeviceGray.
CGColorSpaceCreateDeviceRGB for DeviceRGB.
CGColorSpaceCreateDeviceCMYK for DeviceCMYK.
Warum sollte das auf iOS gehen?! -
AR.DDev schrieb:
0.0, 0.0, 0.0, 1.0
0.5, 0.5, 0.5, 0.5
1.0, 1.0, 1.0, 1.0
0.3, 0.2, 0.4. 0.5
Such dir was aus
Du weißt schon, dass CMYK vier Komponenten hat - und ein CGColor immer aus den Komponenten + Alpha-Kanal (für CMYK also fünf Komponenten) besteht? -
Ah! Mit den 5 Komponenten gehts! Ich danke dir.
Zu deinem 1. Beitrag: Ich habe in div. Foren gelesen, dass dies der Ersatz für CreateColorSpaceWithName() auf dem iPhone ist... Außerdem ist es nur Deprecated auf OS X... -
So ich möchte nun die CMYK-UIColor in den NSUserDefaults ablegen.
Bei RGB-UIColor mache ich das immer so:
So sieht es bei mir für CMYK-UIColor aus:
Quellcode
- CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceCMYK();
- float components[5] = {0.0, 0.0, 0.0, 0.0, 1.0};
- CGColorRef cmyCGColor = CGColorCreate(colorSpace, components);
- UIColor *cmyColor = [UIColor colorWithCGColor:cmyCGColor];
- NSData *cmyColorData = [NSKeyedArchiver archivedDataWithRootObject:cmyColor];
- [[NSUserDefaults standardUserDefaults] setObject:cmyColorData forKey:@"CMYColor"];
- CGColorRelease(cmyCGColor);
- CGColorSpaceRelease(colorSpace);
Leider stürzt die App ab, es heißt, ich würde einen 'Hack' verwenden:
Quellcode
- 2011-02-19 17:05:02.979 App[816:207] *** Assertion failure in -[UICGColor encodeWithCoder:], /SourceCache/UIKit_Sim/UIKit-1447.6.4/UIColor.m:894
- 2011-02-19 17:05:02.981 App[816:207] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Only support RGBA or the White color space, this method is a hack.'
Was kann ich tun? -
Ein NSArray mit den Farb-Komponenten in den UserDefaults ablegen.