Archive for August, 2005

Nearing alpha release 0

After some talks in the forum I came to the conclusion that is was a good idea to release an alpha version before the beta and the release. It will allow people to play with it even if many features are not working. I planned to release something maybe at the end of the current week.

Also, just while I am posting I wish to mention I stumbled upon an interesting documentation about Blend Modes. It has lists of the algorithms used to achived common blend modes. Of course with Core Image most of them are already implemented but this might be a good starting point to start implementing variations. Well, that’ll be once I have learnt that famous subset of opengl shading language one needs to master to write efficient CIFilters.

Infamous Bug number 00024 solved! 3

From the early days of development I postponed fixing this darn bug. For some reason when painting near borders I had random weird artifacts appearing in the result (damaging the actual image, not just a display thing).

Here’s what it looked like:

Well after hours and days searching I found out it’s a very bad idea to chain CIFilters in a loop and use several times the same CIImage (from a CIImageAccumulator) as a parameter. I just created a CIFilter compositing on a transparent background with my brush on foreground and pass my filter’s valueForKey:”outputImage” instead of the source CIIMage. Now painting in borders finally works perfectly.

I am not certain I understand why this happens but at least I found a solution. It doesn’t seem slower either.

Update (january 2005): It seems this is indeed fixed in 10.4.4. In the meantime I had found a workaround but I’ll revert back my code to the old method since it required less steps and should be faster.

Read Only File formats in Tiger 0

I was contacted by a nice guy from Texas who’s into photography (yes there are lots of nice guys in Texas, they aren’t all president) about support for RAW formats in ChocoFlop. I thought it was a nice idea but I’d care about that later. Well… it was before I saw how many read-only file formats Tiger’s ImageIO supports out of the box!

I just printed to the console the full list and in addition to the read/write formats (already listed in the features pages) I saw it supported most RAW formats from Sony, Nikon, Canon, Adobe, Olympus, Konica-Minolta and Kodak. Not to mention MacPaint and Microsoft .ico formats :-)

See the list:
com.compuserve.gif
public.png
public.jpeg-2000
com.sony.raw-image
com.nikon.raw-image
com.adobe.raw-image
public.tiff
com.canon.crw-raw-image
com.canon.cr2-raw-image
com.canon.tif-raw-image
com.olympus.raw-image
com.konicaminolta.raw-image
com.adobe.photoshop-image
com.adobe.illustrator.ai-image
com.adobe.pdf
com.microsoft.ico
com.microsoft.bmp
com.truevision.tga-image
com.sgi.sgi-image
com.apple.quicktime-image
com.apple.icns
com.apple.pict
com.apple.macpaint-image
com.kodak.flashpix-image
public.xbitmap-image
com.ilm.openexr-image
public.radiance

I’ll update the features list I guess. I see the list also supports quicktime image which implies another bunch of formats (probably the same though).

Bug Tracking and Forums 0

I spent some time installing Mantis and entering all known bugs into it. Mantis is a very nice PHP bug management tool. So when the public release comes out goodwilling users will be able to report bugs in a nice, organized way.

While I was at it ,I tried the one click installs offered by DreamHost for PhpBB. This means we now have a forum so (future) users can discuss ChocoFlop issues.

Now, I’ll get back to coding. Seems I now have 25 open entries for bugs to fix or features to implement…

F.A.Q is back 2

OOps, since many people where asking me the same questions I realized the F.A.Q, for some reason, wasn’t visible anymore in the top links. So I put it back, just for you, dear readers. Well, to be quite honest I didn’t want to spend more time than necessary fiddling with Wordpress themes, so the pages links on top are just hardcoded.

Handling slowness 0

Whatever you do to improve speed there’s always a moment when you have to wait. Maybe quantum computers will change that. But maybe then, they won’t need US at all :-)

I added some more threading to ChocoFlop’s actions and also display a message when any task takes more than 0.5 seconds to complete. At least you know it has not crashed and you wait patiently a few more seconds. Here you can see the message when merging three layers (one 3000×3002 nasa earth image and two effects: crystallize and a pinch deformation). Since this does not happen in real time you get the lovely transparent window telling you that hum… either the program or your machine sucks.

Pressure sensitivity and drawing quality 2

Today I had some fun with a Wacom Tablet. Since the tablet I own only runs on Serial port I had to borrow an USB tablet from a friend (merci AndrĂ©). Currently ChocoFlop only support pressure (no tilt, rotation, tangent pressure) since this is all this tablet (Graphire) supports. But that’s rather cool already. As in good old mac tradition, the driver installed without a hitch and worked instantly. It was also the occasion of taking a little more care about quality/speed when drawing (stamp, brush, magic brush, eraser).

The more steps you add between two points, the greater quality you get but this also slows down rendering accordingly. I think I found good default values for my cheap iBook but this maybe a bit slow on old low-end hardware. Or maybe one may be wanting to increase steps (quality) on better hardware. We’ll care more about fine-tuning that when the public release shows up.

As you can see in the holy screenshot below there’s now a new progress bar in the tools options. It shows in real time the current pressure from your tablet.


(click for bigger shot)

Handling large images 0

I finally finished ( ?) the OpenGL display part of ChocoFlop. Now every picture to display is tiled into 256×256 tiles, each of which is assigned to an OpenGL texture. This allows to display unlimited size images. When you zoom on an area of say, 400×300 on a 4096×3072 image (as in screenshot) you can work with pretty much the same speed/confort you had when working on an image of 400×300. Of course you can still paint on the whole image, every operation is applied to the right texture tile..

big images in chocoflop