• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Single Bit editable Image Mask (and other strangeness)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Single Bit editable Image Mask (and other strangeness)


  • Subject: Single Bit editable Image Mask (and other strangeness)
  • From: Development <email@hidden>
  • Date: Wed, 22 Oct 2008 13:25:07 -0400

Good day!

I am working on pixel based drawing tool, and could use some hint on how to handle selection areas.

In the program, each document has a couple different Bitmap context (24 bit RGP space CGBitmapContext ) at the same time. I draw into a scroll view using a Layer (CGLayer). Whenever one of the bitmap context changes, I copy the changes into the layer, but scrolling within the view is done only with the layer except for drawing the selection area.

As always, I want to make sure there isn't a better way of doing what I am doing now.

To handle the selection, I have been using a CGBitmapContext (created with method CGBitmapContextCreate with a bitsPerComponent of 8, a color space of GreySpace, and CGBitmap info of kCGImageAlphaNone). This gives me an editable context, so that I can create the selection graphic using Quartz draw rectangles and ovals. When I need to draw using the selection, I convert the selection into an image (CGBitmapContextCreateImage), clip the context to that image (CGContextClipToMask) and then do whatever drawing I want to do (ex. invert, special fill, you name it).

First of all, it is possible to create a single bit bitmap context (only black and white)? I could only get 8 bit greyscale working correctly.

Should I be using ImageMask for these operations? I did not create a bitmap mask (using CGImageMaskCreate) because I needed to be able to constantly modify the mask using rectangle and oval commands (and I could not get that call to work).

Lastly, when when drawing between bitmap context (basically copying one section to another), is the best way to create an Image from the bitmap info (CGBitmapContextCreateImage) and then draw using the image. Apple documentation suggest that this is quick enough. If I create an image, and then modify the context, the image I created would have a copy of the data, not any changes.

Thanks for any comments!

Steve Sheets
_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Follow-Ups:
    • Re: Single Bit editable Image Mask (and other strangeness)
      • From: "Ken Ferry" <email@hidden>
  • Prev by Date: Re: NSInMemoryStoreType: Not really "persistent", is it?
  • Next by Date: Re: Yet another CALayer puzzle
  • Previous by thread: Re: Yet another CALayer puzzle
  • Next by thread: Re: Single Bit editable Image Mask (and other strangeness)
  • Index(es):
    • Date
    • Thread