incubator-callback-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shazron Abdullah (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CB-54) Feature request: ability to downsize pictures with camera.getPicture (no crop)
Date Mon, 28 Nov 2011 22:31:41 GMT

    [ https://issues.apache.org/jira/browse/CB-54?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13158869#comment-13158869
] 

Shazron Abdullah commented on CB-54:
------------------------------------

by: https://github.com/patdenice

I finally wrote a phonegap plugin to extend camera API:

In my app, I call camera.getResizedPicture method instead of camera.getPicture with same parameters.
With targetWidth and targetHeight parameters, my image is just resized and not cropped.

cameraExtended.js

    Camera.prototype.getResizedPicture = function(successCallback, errorCallback, options)
{
    
    	// successCallback required
    	if (typeof successCallback != "function") {
            console.log("Camera Error: successCallback is not a function");
            return;
        }
    
        // errorCallback optional
        if (errorCallback && (typeof errorCallback != "function")) {
            console.log("Camera Error: errorCallback is not a function");
            return;
        }
    
        PhoneGap.exec(successCallback, errorCallback, "com.phonegap.cameraExtended","getPicture",[options]);
    };

cameraExtended.h

    #import "PhoneGap/Camera.h"
    
    @interface PGCameraExtended : PGCamera<UIImagePickerControllerDelegate, 
    									UINavigationControllerDelegate,
    									UIPopoverControllerDelegate>
    {
    }
    
    - (UIImage*)imageByScalingAndCroppingForSize:(UIImage*)anImage toSize:(CGSize)targetSize;
    
    @end

cameraExtended.m

    #import "cameraExtended.h"
    
    @implementation PGCameraExtended
    
    - (UIImage*)imageByScalingAndCroppingForSize:(UIImage*)anImage toSize:(CGSize)targetSize
    {
        UIImage *sourceImage = anImage;
        UIImage *newImage = nil;        
        CGSize imageSize = sourceImage.size;
        CGFloat width = imageSize.width;
        CGFloat height = imageSize.height;
        CGFloat targetWidth = targetSize.width;
        CGFloat targetHeight = targetSize.height;
        CGFloat scaledWidth = targetWidth;
        CGFloat scaledHeight = targetHeight;
      
        CGFloat ratio_width  = width / targetWidth;
        CGFloat ratio_height = height / targetHeight;
      
        // maximal size exceeded ?
        if (ratio_width > 1 || ratio_height > 1)
        {
          if (ratio_width < ratio_height)
          { 
            scaledWidth = ceil(width / ratio_height);
          }
          else
          { 
            scaledHeight = ceil(height / ratio_width);
          }
    
          targetSize = CGSizeMake(scaledWidth, scaledHeight);
          self.pickerController.targetSize = targetSize;
        }
        else
        {
          return sourceImage;
        }
        
        UIGraphicsBeginImageContext(targetSize);
        
        CGRect thumbnailRect = CGRectZero;
        thumbnailRect.size.width  = scaledWidth;
        thumbnailRect.size.height = scaledHeight;
        
        [sourceImage drawInRect:thumbnailRect];
        
        newImage = UIGraphicsGetImageFromCurrentImageContext();
        if(newImage == nil) 
            NSLog(@"could not scale image");
        
        //pop the context to get back to the default
        UIGraphicsEndImageContext();
        return newImage;
    }
    
    @end
                
> Feature request: ability to downsize pictures with camera.getPicture (no crop)
> ------------------------------------------------------------------------------
>
>                 Key: CB-54
>                 URL: https://issues.apache.org/jira/browse/CB-54
>             Project: Apache Callback
>          Issue Type: New Feature
>          Components: iOS
>            Reporter: Shazron Abdullah
>
> reported at: https://github.com/phonegap/phonegap-iphone/issues/287
> by: https://github.com/patdenice
> Hi,
> We're working on a mobile application using phonegap. The application is designed to
upload photos from the smartphone/tablet to a Piwigo gallery. Piwigo is a popular open source
web application to create photo galleries. The application "Piwigo for iOS/Android" is nearly
complete, we just need the ability to downsize photos before upload. Unfortunately, targetWidth
and targetHeight parameters on camera.getPicture method are designed to crop the photo, which
is what we're seeking. Would it be possible to add maxWidth/maxHeight parameters and resize
algorithm ?
> Thanks.
> P@t
> Piwigo Team.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message