I have a 3х3 Matrix which I need to apply to UIImage and save it in Documents folder. I successfully converted the 3x3 Matrix (represented as [[Double]]) to CATrasform3D and then I have broken my head with trying to figure out how to apply it to UIImage.
The only property where I can I apply it is UIView(or UIImageView in case with working with UIImage) transform property. But it has nothing to do with UIImage itself. I can't save the UIImage from transformed the UIImageView with all the transformations.
And all the CoreGraphic methods (like concatenate for CGContext) only work with affine transformations which not suits for me.
Please give me a hint what direction I should look.
Does Apple has native methods or I have to use 3rd party frameworks for this functionality?
Quartz
RSS for tagAllow users to browse, edit, and save images using slideshows and Core Image filters using Quartz.
Posts under Quartz tag
8 Posts
Sort by:
Post
Replies
Boosts
Views
Activity
Hi Team,
We are facing crash in CAMediaTimingCopyRenderTiming for production users. And we are unable to trace the crash.
Below is the crash stack trace -
Crashed: com.apple.main-thread
0 QuartzCore 0x14b9c CAMediaTimingCopyRenderTiming + 660
1 QuartzCore 0xfa9c -[CAAnimation _setCARenderAnimation:layer:] + 64
2 QuartzCore 0x146e4 -[CAAnimationGroup _copyRenderAnimationForLayer:] + 356
3 QuartzCore 0x12f3c CA::Layer::commit_animations(CA::Transaction*, double ()(CA::Layer, double, void*), void ()(CA::Layer, CA::Render::Animation*, void*), void ()(CA::Layer, __CFString const*, void*), CA::Render::TimingList* ()(CA::Layer, void*), void*) + 688
4 QuartzCore 0x277c invocation function for block in CA::Context::commit_transaction(CA::Transaction*, double, double*) + 176
5 QuartzCore 0x482bc CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block_pointer) + 384
6 QuartzCore 0x48244 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block_pointer) + 264
7 QuartzCore 0x48244 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block_pointer) + 264
8 QuartzCore 0x48244 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block_pointer) + 264
9 QuartzCore 0x48244 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block_pointer) + 264
10 QuartzCore 0x48244 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block_pointer) + 264
11 QuartzCore 0x48244 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block_pointer) + 264
12 QuartzCore 0x48244 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block_pointer) + 264
13 QuartzCore 0x48244 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block_pointer) + 264
14 QuartzCore 0x48244 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block_pointer) + 264
15 QuartzCore 0x48244 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block_pointer) + 264
16 QuartzCore 0x2e078 CA::Context::commit_transaction(CA::Transaction*, double, double*) + 6224
17 QuartzCore 0x59dc0 CA::Transaction::commit() + 644
18 QuartzCore 0x44dbc CA::Transaction::flush_as_runloop_observer(bool) + 84
19 CoreFoundation 0x898e8 CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION + 32
20 CoreFoundation 0x1951c __CFRunLoopDoObservers + 552
21 CoreFoundation 0x75214 __CFRunLoopRun + 1004
22 CoreFoundation 0x79d20 CFRunLoopRunSpecific + 584
23 GraphicsServices 0x1998 GSEventRunModal + 160
24 UIKitCore 0x371448 -[UIApplication _run] + 868
25 UIKitCore 0x3710c0 UIApplicationMain + 312
26 SwiftUI 0x183c68 OUTLINED_FUNCTION_895 + 2184
27 SwiftUI 0xfdf1c block_copy_helper.1 + 452
28 SwiftUI 0xeaf6c OUTLINED_FUNCTION_901 + 2312
29 Evie Ring 0x2dd20c main + 10 (MovanoRingApp.swift:10)
30 ??? 0x1c7724344 (Missing)
Does anyone know why the following call fails?
CGPDFOperatorTableSetCallback(operatorTable, "ID", &callback);
The PDF specification seems to indicate that ID is an operator?
BTW what is the proper topic/subtopic for questions about Quartz? Wasn't sure what topic on the new forums to post this under.
The guide on how to make a QC composition a standalone app assumes I use an earlier version of Xcode (and retired). And Xcode, of course, has changed a lot since the past decade and the guides basically can't be used anymore.
Hi Team, some of our users are getting crash in QuartzCore. But we are not sure the exact reason for it. Can you please help us in it? App is crashing in production.
Xcode version - 15.0
Platform - iOS
Below is the crash stack trace.
Crashed: com.apple.main-thread
0 libsystem_kernel.dylib 0xa974 __pthread_kill + 8
1 libsystem_pthread.dylib 0x60ec pthread_kill + 268
2 libsystem_c.dylib 0x75b80 abort + 180
3 QuartzCore 0x98ba8 CA::Render::Encoder::grow(unsigned long) + 288
4 QuartzCore 0x97e50 CA::Render::Vector::encode(CA::Render::Encoder*) const + 112
5 QuartzCore 0x10a76c CA::Render::KeyframeAnimation::encode(CA::Render::Encoder*) const + 68
6 QuartzCore 0x975ec CA::Render::Array::encode(CA::Render::Encoder*) const + 172
7 QuartzCore 0x75204 CA::Context::commit_animation(CA::Layer*, CA::Render::Animation*, void*) + 236
8 QuartzCore 0x72998 CA::Layer::commit_animations(CA::Transaction*, double ()(CA::Layer, double, void*), void ()(CA::Layer, CA::Render::Animation*, void*), void ()(CA::Layer, __CFString const*, void*), CA::Render::TimingList* ()(CA::Layer, void*), void*) + 956
9 QuartzCore 0x2b930 invocation function for block in CA::Context::commit_transaction(CA::Transaction*, double, double*) + 148
10 QuartzCore 0x2b838 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block_pointer) + 368
11 QuartzCore 0x2b7c4 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block_pointer) + 252
12 QuartzCore 0x2b7c4 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block_pointer) + 252
13 QuartzCore 0x2b7c4 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block_pointer) + 252
14 QuartzCore 0x2b7c4 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block_pointer) + 252
15 QuartzCore 0x2b7c4 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block_pointer) + 252
16 QuartzCore 0x2b7c4 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block_pointer) + 252
17 QuartzCore 0x2b7c4 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block_pointer) + 252
18 QuartzCore 0x2b7c4 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block_pointer) + 252
19 QuartzCore 0x2b7c4 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block_pointer) + 252
20 QuartzCore 0x2b7c4 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block_pointer) + 252
21 QuartzCore 0x6f5b0 CA::Context::commit_transaction(CA::Transaction*, double, double*) + 11212
22 QuartzCore 0x661bc CA::Transaction::commit() + 648
23 QuartzCore 0x65e64 CA::Transaction::flush_as_runloop_observer(bool) + 88
24 CoreFoundation 0x35d3c CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION + 36
25 CoreFoundation 0x34738 __CFRunLoopDoObservers + 552
26 CoreFoundation 0x33e50 __CFRunLoopRun + 1028
27 CoreFoundation 0x33968 CFRunLoopRunSpecific + 608
28 GraphicsServices 0x34e0 GSEventRunModal + 164
29 UIKitCore 0x22aedc -[UIApplication _run] + 888
30 UIKitCore 0x22a518 UIApplicationMain + 340
31 SwiftUI 0x1033860 OUTLINED_FUNCTION_39 + 600
32 SwiftUI 0x10336a8 OUTLINED_FUNCTION_39 + 160
33 SwiftUI 0xc4f9fc get_witness_table 7SwiftUI4ViewRzlAA15ModifiedContentVyxAA30_EnvironmentKeyWritingModifierVySbGGAaBHPxAaBHD1__AgA0cI0HPyHCHCTm + 364
34 Evie Ring 0x324620 main + 10 (MovanoRingApp.swift:10)
35 ??? 0x1ad632d84 (Missing)
I am trying to generate a PDF file with certain components draw with Spot Colours. Spot colours are used for printing and I am not clear on how one would do that but I think that if I can create a custom ColorSpace with a specific name or a color that has a specific name - our printer looks for the name Spot1 and they use the colour green.
Can anyone shed any light on how I might be able to do this. For reference I have attached two pdf files with two different spot colours in them.
I need to be able to create similar using CGContext and CGPDFDocument. I can already generate the PDF documents using CMYK colors but don't know how I can create the equivalent "spot" colors.
At the moment I am loading the page from these attached pdf files and scaling them to fill the page to get a background with the spot color. This works fine but I also need to generate text and lines using this same spot color and I am not clear how I could do that using the Core Graphics APIs.
My guess is I need to create a custom ColorSpace with a single color and then use that color for drawing with.
The only 'custom' option for creating a ColorSpace seems to be the CGColorSpace(propertyListPList:) constructor, however there does not appear to be any documentation on what needs to be in the property list to do so. Nor can I find any examples of that.
Any pointers would be appreciated.
Regards
the log of error thread is as following
Thread 4 Crashed:: Dispatch queue: CA DispatchGroup
0 libwx_osx_cocoau_core-3.1.1.0.0.dylib 0x10f3707f0 wxMacCoreGraphicsBrushData::CalculateShadingValues(void*, double const*, double*) + 240
1 CoreGraphics 0x7ff80acda1ce CGFunctionEvaluate + 243
2 CoreGraphics 0x7ff80acda032 function_evaluate + 369
3 CoreGraphics 0x7ff80acd9758 ripc_AcquireFunction + 831
4 CoreGraphics 0x7ff80acd8934 ripc_DrawShading + 5841
5 CoreGraphics 0x7ff80b1e6e7a CG::DisplayListExecutor::drawShading(CG::DisplayListEntryShading const*) + 438
6 CoreGraphics 0x7ff80b2de843 CG::DisplayList::executeEntries(std::__1::__wrap_iter<std::__1::shared_ptr<CG::DisplayListEntry const>*>, std::__1::__wrap_iter<std::__1::shared_ptr<CG::DisplayListEntry const>*>, CGContextDelegate*, CGRenderingState*, CGGStack*, CGRect const*, __CFDictionary const*, bool) + 195
7 CoreGraphics 0x7ff80ad5cb03 CG::DisplayList::execute(CGContextDelegate*, CGRenderingState*, CGGStack*, CGRect const*, __CFDictionary const*) + 341
8 CoreGraphics 0x7ff80ad5c869 CGDisplayListDrawInContextDelegate + 617
9 AppKit 0x7ff80900769a -[NSViewBackingLayerContentLayer drawInContext:] + 57
10 QuartzCore 0x7ff80dd19293 CABackingStoreUpdate_ + 630
11 QuartzCore 0x7ff80dd77f2e invocation function for block in CA::Layer::display_() + 53
12 QuartzCore 0x7ff80dd182f2 -[CALayer _display] + 2253
13 QuartzCore 0x7ff80dd43d67 display_callback(void*, void*) + 97
14 QuartzCore 0x7ff80dd43ce6 CA::DispatchGroup::dispatch(bool) + 108
15 libdispatch.dylib 0x7ff80510d59a _dispatch_client_callout + 8
16 libdispatch.dylib 0x7ff805113668 _dispatch_lane_serial_drain + 816
17 libdispatch.dylib 0x7ff805114100 _dispatch_lane_invoke + 377
18 libdispatch.dylib 0x7ff80511daee _dispatch_root_queue_drain_deferred_wlh + 271
19 libdispatch.dylib 0x7ff80511d3fd _dispatch_workloop_worker_thread + 451
20 libsystem_pthread.dylib 0x7ff8052b1c47 _pthread_wqthread + 327
21 libsystem_pthread.dylib 0x7ff8052b0b97 start_wqthread + 15
Thread 4 crashed with X86 Thread State (64-bit):
rax: 0x0000000000000000 rbx: 0x000000030ee7ea60 rcx: 0x0000600000a4df58 rdx: 0x000000030ee7ea60
rdi: 0x000060000237b9a8 rsi: 0x000000030ee7ea10 rbp: 0x000000030ee7ea00 rsp: 0x000000030ee7ea00
r8: 0xe000000000000002 r9: 0x1ffffffffffffffe r10: 0x000000008ee09001 r11: 0x0000000000000019
r12: 0x0000000000000001 r13: 0x0000000000000001 r14: 0x000060000237bdb0 r15: 0x000000030ee7ea10
rip: <unavailable> rfl: 0x0000000000000242
tmp0: 0x000000010fa69800 tmp1: 0x00007ff80acda1ce tmp2: 0x00007ff89da92500
Binary Images:
0x20606a000 - 0x206109fff dyld (*) <d5406f23-6967-39c4-beb5-6ae3293c7753> /usr/lib/dyld
0x10f2c9000 - 0x10f2d8fff libobjc-trampolines.dylib (*) <7e101877-a6ff-3331-99a3-4222cb254447> /usr/lib/libobjc-trampolines.dylib
0x10ebb0000 - 0x10ebc3fff tdsearch-x64.dylib (*) <1bd85264-ee0d-36f4-ab94-a6d81ec1bb0f> /Applications/BaKoMa TeX/*/tdsearch-x64.dylib
0x10f2fd000 - 0x10f7c1fff libwx_osx_cocoau_core-3.1.1.0.0.dylib (*) <0362fcaf-20bc-39e8-8a36-a8736662480e> /Applications/BaKoMa TeX/*/libwx_osx_cocoau_core-3.1.1.0.0.dylib
0x10ffb0000 - 0x1101a6fff libwx_baseu-3.1.1.0.0.dylib (*) <a0e6ac20-4be1-3f6d-810f-f116d5f29279> /Applications/BaKoMa TeX/*/libwx_baseu-3.1.1.0.0.dylib
0x10ecf2000 - 0x10ed6bfff libwx_osx_cocoau_aui-3.1.1.0.0.dylib (*) <97bc52cb-e328-361a-a7ea-58e1b7c04f58> /Applications/BaKoMa TeX/*/libwx_osx_cocoau_aui-3.1.1.0.0.dylib
0x10ef30000 - 0x10efc8fff libwx_osx_cocoau_html-3.1.1.0.0.dylib (*) <3abef03a-ea27-3b81-bdbe-136afe43eae2> /Applications/BaKoMa TeX/*/libwx_osx_cocoau_html-3.1.1.0.0.dylib
0x1104a8000 - 0x1105c4fff libwx_osx_cocoau_adv-3.1.1.0.0.dylib (*) <048f9971-9720-32ee-9b41-aa1224eba010> /Applications/BaKoMa TeX/*/libwx_osx_cocoau_adv-3.1.1.0.0.dylib
0x10ee4a000 - 0x10ee7cfff libwx_baseu_net-3.1.1.0.0.dylib (*) <4ef643bb-33ba-353e-8f1f-42e3cfd80259> /Applications/BaKoMa TeX/*/libwx_baseu_net-3.1.1.0.0.dylib
0x10ec63000 - 0x10ec7efff liblzma.5.dylib (*) <e4406e42-7bc4-3945-a1a4-e9b6874ef052> /usr/local/Cellar/xz/5.2.5/lib/liblzma.5.dylib
0x7ff7ffc5a000 - 0x7ff7ffc89fff runtime (*) <2c5acb8c-fbaf-31ab-aeb3-90905c3fa905> /usr/libexec/rosetta/runtime
0x10e235000 - 0x10e288fff libRosettaRuntime (*) <a61ec9e9-1174-3dc6-9cdb-0d31811f4850> /Library/Apple/*/libRosettaRuntime
0x104b78000 - 0x104d88fff texword (*) <feb2b054-bd1a-36a5-8803-605478982dc1> /Applications/BaKoMa TeX/*/texword
0x0 - 0xffffffffffffffff ??? (*) <00000000-0000-0000-0000-000000000000> ???
0x7ff805274000 - 0x7ff8052aeff7 libsystem_kernel.dylib (*) <4df0d732-7fc4-3200-8176-f1804c63f2c8> /usr/lib/system/libsystem_kernel.dylib
0x7ff8052af000 - 0x7ff8052bafff libsystem_pthread.dylib (*) <c64722b0-e96a-3fa5-96c3-b4beaf0c494a> /usr/lib/system/libsystem_pthread.dylib
0x7ff80dcf6000 - 0x7ff80e09dff9 com.apple.QuartzCore (1.11) <75bd9503-d1ab-32d2-bd5b-89ec89d3e8dd> /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore
0x7ff8088c1000 - 0x7ff809cc6ffb com.apple.AppKit (6.9) <27fed5dd-d148-3238-bc95-1dac5dd57fa1> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
0x7ff805314000 - 0x7ff8057acffc com.apple.CoreFoundation (6.9) <4d842118-bb65-3f01-9087-ff1a2e3ab0d5> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
0x7ff8100c5000 - 0x7ff810360ff4 com.apple.HIToolbox (2.1.1) <06bf0872-3b34-3c7b-ad5b-7a447d793405> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox
0x7ff80acad000 - 0x7ff80b53effc com.apple.CoreGraphics (2.0) <c709e588-6adf-33ad-b7c8-5dbe61c7694d> /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
0x7ff80510a000 - 0x7ff805150ffd libdispatch.dylib (*) <4472f1a5-1d47-3665-ac8d-7adb0e9d2d87> /usr/lib/system/libdispatch.dylib
0x7ff805154000 - 0x7ff8051dbfff libsystem_c.dylib (*) <83c7b73c-86fe-32f9-85dd-f46fa2c1315b> /usr/lib/system/libsystem_c.dylib
I really love Quartz Composer from Apple which is a quite old app, not updated for years. It works well on my 2015 mid MacBook Pro, but not on new M1 iMac. Does anyone know how to run this great app on my new machine? Thank you!