Posts

Post not yet marked as solved
9 Replies
153 Views
In our app we use the following function for inverting a CGImageRef using vImage. The workflow is a obj-c version of the code in the AdjustingTheBrightnessAndContrastOfAnImage sample from Apple: CGImageRef InvertImage( CGImageRef frameImageRef ) { CGImageRef resultImage = nil; CGBitmapInfo imgBitmapInfo = CGImageGetBitmapInfo( frameImageRef ); size_t img_bPC = CGImageGetBitsPerComponent( frameImageRef ); size_t img_bPP = CGImageGetBitsPerPixel( frameImageRef ); vImage_CGImageFormat invIFormat; invIFormat.bitsPerComponent = img_bPC; invIFormat.bitsPerPixel = img_bPP; invIFormat.colorSpace = (img_bPP == 8) ? gDeviceGrayColorSpaceRef : gDeviceRGBColorSpaceRef; invIFormat.bitmapInfo = imgBitmapInfo; invIFormat.version = 0; invIFormat.decode = 0; invIFormat.renderingIntent = kCGRenderingIntentDefault; vImage_Buffer sourceVImageBuffer; vImage_Error viErr = vImageBuffer_InitWithCGImage( &sourceVImageBuffer, &invIFormat, nil, frameImageRef, kvImageNoFlags ); if (viErr == kvImageNoError) { vImage_Buffer destinationVImageBuffer; viErr = vImageBuffer_Init( &destinationVImageBuffer, sourceVImageBuffer.height, sourceVImageBuffer.width, img_bPP, kvImageNoFlags ); if (viErr == kvImageNoError) { float linearCoeffs[2] = { -1.0, 1.0 }; float expoCoeffs[3] = { 1.0, 0.0, 0.0 }; float gamma = 0.0; Pixel_8 boundary = 255; viErr = vImagePiecewiseGamma_Planar8( &sourceVImageBuffer, &destinationVImageBuffer, expoCoeffs, gamma, linearCoeffs, boundary, kvImageNoFlags ); if (viErr == kvImageNoError) { CGImageRef newImgRef = vImageCreateCGImageFromBuffer( &destinationVImageBuffer, &invIFormat, nil, nil, kvImageNoFlags, &viErr ); if (viErr == kvImageNoError) resultImage = newImgRef; } free( destinationVImageBuffer.data ); } free( sourceVImageBuffer.data ); } return resultImage; } The function works fine for 8-bit monochrome images. When I try it with 24-bit RGB images, although I get no errors from any of the calls, the output shows only the 1/3 of the image inverted as expected. What am I missing? I suspect I might have to use a different function for 24-bit images (instead of the vImagePiecewiseGamma_Planar8) but I cannot find which one in the headers. Thanks.
Posted
by konis.
Last updated
.
Post marked as solved
1 Replies
337 Views
Our new macOS app has been accepted for review on the App Store. The app includes 2 in-app purchases. The Review team asks for the in-app purchases to be send for review also, but I cannot find a way to do it. I have saved the 2 in-apps as drafts in the app's page in App Store Connect, but I don't see any way to send them for Review, only Save and Remove as you can see in attached screenshots. How do I submit the in-apps for Review? How have you done it for your apps? Please help because I am losing my hair over this.
Posted
by konis.
Last updated
.
Post not yet marked as solved
3 Replies
1k Views
Hello,I am trying to notarise an app with many components. Up to two days ago, the app with just 1 framework included, could be notarised and run normally on my machine.After upgrading to 10.15.2 and Xcode 11.3 the same configuration passes notarization, launches ok, and at some point during start-up displays the Open dialog for the user. The dialog works ok and it enables and disables items on the disk as expected. But the user clicks the Open button, the app closes with the following message written in sysem.log:Dec 11 18:47:13 book9 com.apple.xpc.launchd[1] (com.apple.xpc.launchd.oneshot.0x1000000e.theApp[27407]): removing service since it exited with consistent failure - OS_REASON_EXEC | Gatekeeper policy blocked executionHas anything changed in macOS 10.15.2 ? How can I resolve this?Thank you,Christos
Posted
by konis.
Last updated
.