I have a problem, i save a photo using the pnoJpegLib with a treo 650 and when 
i look the photo in the SD card, the image is in other colors, like a Thermal 
Scan.

Please, help me!!!!!!!!!


Thanks.


static Err CamaraStart(void)
{
 Err            error = errNone;
  UInt32        toDepth = 16;
  UInt32        currentDepth;
  UInt32        supportedDepths;



  // Get current display depth.
  WinScreenMode (winScreenModeGet, NULL, NULL, &currentDepth, NULL);

  // Get supported display depths.
  WinScreenMode (winScreenModeGetSupportedDepths, NULL, NULL, &supportedDepths, 
NULL);

  if ((currentDepth != toDepth) && (supportedDepths & (1 << (toDepth - 1))) )
    {
          error = WinScreenMode (winScreenModeSet, NULL, NULL, &toDepth, NULL); 

          if (error) 
                {
                  FrmCustomAlert(GeneralAlert, "WinScreenMode error:", NULL, 
NULL);
                  return error;
                }
    }

  error = WinScreenMode (winScreenModeSet, NULL, NULL, &toDepth, NULL); 

  // Library load (Try loading library from Treo 600)
  if( gLibRefNum == sysInvalidRefNum ) 
        {
          error = SysLibFind(kCameraLibName, &gLibRefNum);
          if (error) 
                {
                  error = SysLibLoad(sysFileTLibrary, kCameraLibCreator, 
&gLibRefNum);

                  if (error) 
                          gLibRefNum = sysInvalidRefNum;
                }
        }

  // Library load (Try loading library from Ace)
  if (gLibRefNum == sysInvalidRefNum)
        {
          error = SysLibFind(kCamLibName, &gLibRefNum);
          if (error != errNone)
                error = SysLibLoad(kCamLibType, kCamLibCreator, &gLibRefNum);
                
          if (error)
            {
              FrmCustomAlert(GeneralAlert, "Unable to load Camera library", 
NULL, NULL);
              return error;
            }
            
          OldLibrary = false;
    }
    
  error = CameraLibraryOpen(gLibRefNum, OldLibrary);
          
  return error;
  }


//On capture button click

static Err WindowPreview (void)
{
  UInt32                i;
  Err                   err = 0;
  UInt16          * bits;
  BitmapType  * bitmapP;
  
  // New library stuff
  CamLibBitmapInfoType info;
  CamLibCaptureType capture;
  CamLibSettingType captureFormat;
  PhotoCaptureInfo captureInfo;

        captureFormat.type = kCamLibCaptureDataFormatRGB565;
        CamLibControl(gLibRefNum, kCamLibCtrlCaptureFormatSet, (void *) 
&captureFormat);
        CamLibControl(gLibRefNum, kCamLibCtrlCaptureGetBitmapInfo, (void *) 
&info);
        
        captureInfo.winH = WinCreateOffscreenWindow(info.width / 2, info.height 
/ 2, nativeFormat, &err);
        captureInfo.bufferP = (unsigned char *) 
BmpGetBits(WinGetBitmap(captureInfo.winH));
        
        capture.userDataP = &captureInfo;
        capture.callbackP = PhotoCaptureCallback;
        CamLibControl(gLibRefNum, kCamLibCtrlCapture, &capture);
        
        WinDrawBitmap(WinGetBitmap(captureInfo.winH), previewLeft, previewTop);
        
        
        Err error; 
        pnoJpeg2EncPtr jpegEncode; 
        MemHandle imageHandle; 
        MemPtr imageData; 
        FileRef fr; 
        UInt16 pnoJpegRefNum,volRefNum=expErrEnumerationEmpty;
        
        pnoJpeg_OpenLibrary(&pnoJpegRefNum);
        error = pnoJpeg2EncodeCreate(pnoJpegRefNum, &jpegEncode); 
        pnoJpeg2EncodeToMemHandle(pnoJpegRefNum, jpegEncode, &imageHandle); 
        pnoJpeg2EncodeSetQuality(pnoJpegRefNum, jpegEncode, 90); 
        pnoJpeg2EncodeProgressive(pnoJpegRefNum, jpegEncode, false); 
        error = pnoJpeg2Write(pnoJpegRefNum, jpegEncode, 
WinGetBitmap(captureInfo.winH)); 
        pnoJpeg2EncodeFree(pnoJpegRefNum, &jpegEncode); 

        imageData = MemHandleLock(imageHandle); 
        error = VFSFileOpen(volRefNum, "/DCIM/sample_save.jpg", vfsModeCreate | 
vfsModeReadWrite, &fr); 
        error = VFSFileWrite(fr, MemHandleSize(imageHandle), imageData, NULL); 

        VFSFileClose(fr); 

        MemHandleUnlock(imageHandle); 
        MemHandleFree(imageHandle);
        
        pnoJpeg_CloseLibrary(pnoJpegRefNum);
        WinDeleteWindow(captureInfo.winH, true);
  
  return err;
}

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

Reply via email to