I could make it work

Landon Cunningham wrote:

I know you have all probably read my past post regarding my problems
with encoding using the pnoJpeg lib. I know you must think that the
problem is very similiar to pnoJpegLib: 0-bytes length VFS-file 2005-05-01 09:03:00 <Miguel Angel Sotomayor Hernandez. I have looked
at it and even tried encoding to a memhandle but the same problem
exists, the mem handle is exactly 4kb.


Hopping that it will be usefull, here is my code, I hope it works for you. I'm just sending the relevant part of the code, sorry it's a little bit messy (I have more code within the function that checks if the image already exists and stores a reference to the image so my app knows what report the image belongs to and that kind of stuff but I removed those parts to make it clear... I hope).

If you are in trouble let me know.

I hope this helps

Miguel

code:
pnoJpeg2EncPtr jpegEncode;
             MemHandle imgh;
 BitmapType  * bitmapS;

UInt16       * bitsS;
pnoJpeg2EncPtr jpegEncode;
             MemHandle imgh;

bitmapS = BmpCreate (previewWidth*2, previewHeight*2, previewDepth, 0, &err);

bitsS = (UInt16 *) BmpGetBits (bitmapS);

err = CameraLibPreview (gLibRefNum, bitsS,
             kCameraImageFormatRGB16, previewWidth*2, previewHeight*2);


err = pnoJpeg2EncodeCreate(pnoJpegRefNum, &jpegEncode);

if(err == errNone){
pnoJpeg2EncodeToMemHandle(pnoJpegRefNum, jpegEncode, &imgh);
                 pnoJpeg2EncodeSetQuality(pnoJpegRefNum, jpegEncode, 80);
pnoJpeg2EncodeProgressive(pnoJpegRefNum, jpegEncode, true);
                 err = pnoJpeg2Write(pnoJpegRefNum, jpegEncode, bitmapS);
                 pnoJpeg2EncodeFree(pnoJpegRefNum, &jpegEncode);
             }


                   Err error=0;
UInt16 volRefNum;
                   UInt32 volIterator;
UInt16 pathLength;
                   FileRef fr;
volIterator = vfsIteratorStart;
                   pathLength = 64;
                   error = VFSVolumeEnumerate(&volRefNum, &volIterator);
                   if (error == errNone)
VFSGetDefaultDirectory(volRefNum, ".jpg", path, &pathLength);
                   else
DisplayError("No existen tarjetas para guardar la imagen", error);
                   if (error == errNone){
                       if (pathLength > 0 && path[pathLength - 1] == '\0')
                           pathLength--;
                       if (pathLength > 0 && path[pathLength - 1] != '/')
path[pathLength++] = '/'; } if(error == errNone) { void * datos; // Un apuntador sin tipo de dato especĂ­fico
                       // Guardar la imagen en el archivo
StrCat(path, nombre);
                       datos = MemHandleLock(imgh);
error = VFSFileOpen(volRefNum, path, vfsModeCreate | vfsModeReadWrite, &fr); error = VFSFileWrite(fr, MemHandleSize(imgh), datos, NULL);
                       VFSFileClose(fr);
MemHandleUnlock(imgh); if(error)
                           FrmAlert(ImagenErrorAlert);
                   }




Landon Cunningham wrote:

I know you have all probably read my past post regarding my problems
with encoding using the pnoJpeg lib. I know you must think that the
problem is very similiar to pnoJpegLib: 0-bytes length VFS-file 2005-05-01 09:03:00 <Miguel Angel Sotomayor Hernandez. I have looked
at it and even tried encoding to a memhandle but the same problem
exists, the mem handle is exactly 4kb.

So again what I am doing is trying to encode a bitmap using the pno
jpeg library. I have tried encoding to a filestream which results in
4kb jpeg image which does not open.  Then I have tried using a
memhandle which results in 4kb image. I check the memhandle size
through MemHandleSize() function which results in exactly 4kb or 4096
bytes.

I have tried looking at past examples and past posts but I seem to get
nowhere. I am just trying to encode a bitmap of the screen which is
160x160. Which as I read should not be a problem right.

I know this must seem very annoying that I try and keep posting the
same problem with the same result. Ie no one helping me. But I have
spent hours trying to search past posts and looking for any results
that relate to this. I do apologize.

Maybe this is some small stupid little problem that most people would
see but I have been looking at my code for way too long and I can't
seem to see it.

Thanks,

Landon C



--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/

Reply via email to