maybe someone from Google is gonna correct me :)

2010/6/16 Jaroslav Záruba <[email protected]>

> On Wed, Jun 16, 2010 at 10:41 PM, Kelly A <[email protected]>wrote:
>
>> Really bursts of RAM usage of up to 10 megs for the term of an image
>> operation are not likely to increase RAM costs for the image API that
>> much.  The case of uploading and image is some what infrequent and
>> they could impose quotas that would, force frequent users of large
>> memory consumption to pay.
>
>
> As for the case of uploading - image operations are not limited to
> uploading requests. Therefore I don't see how is frequency of uploading
> relevant to this.
>
>
>> Not to mention, the method you described uses the same amount of RAM to
>> resize
>
> the image as my process would use.
>>
>
> The point is not to save memory during every transformation, but to help
> you cope with the limit when accepting images over which size you don't have
> control
> I think it is quite elegant and easy (to implement and explain) way of 1)
> imposing arbitraty memory-limit while 2) still giving user a way of coping
> with it.
>
> The image API right now works like a building where all of the doors
>> are too small for the average person to pass through.
>>
>
> As much as the analogy is inaccurate, the doors will always cost something
> and there will always be persons with above average height. Luckily for
> taller persons the building has another doors. (You're lucky person if
> opening console and enabling billing is what bothers you. :)
> There probably has to be some limit, so Google could have chosen way of A)
> simply rejecting all large uploads, B) let you access their degraded
> version.
>
> On Jun 16, 2:40 pm, Jaroslav Záruba <[email protected]> wrote:
>> > On Wed, Jun 16, 2010 at 9:32 PM, Kelly A <[email protected]>
>> wrote:
>> > > So if I save an image into the blob store then load it from the blob
>> > > store I can work on it as long as the result is smaller than 1
>> > > megabyte.
>> >
>> > > this would be extremely inefficient in my case:
>> >
>> > > 350k Jpeg stored as the primary image
>> > > 10k Thumbnail created from that image
>> >
>> > > I do not need to use blob store for these cases.
>> >
>> > > current process:
>> >
>> > > Get bits >> resize bits >> Save Bits
>> >
>> > > Proposed process:
>> >
>> > > Get bits >> save to Blob store >> Read from blob store >> resize bits
>> > > >> save bits
>> >
>> > > Since I am not storing anything larger than 1 megabyte I don't need to
>> > > keep the blog store around so add in a delete to delete this temporary
>> > > blob store item.
>> >
>> > The idea was to make images you can't load (due to their size) smaller
>> so
>> > you can load them, In a way that would not bother your users.
>> >
>> > > Plus I would need to turn on billing to even get this to work.
>> >
>> > > so even though there is a work around here, I say it is still
>> > > desirable for the Google App team to take a look at this and see that
>> > > the current limitations on the Image API are not reasonable.
>> >
>> > Sure it is perfectly reasonable. Disk-space is cheap, RAM is not,
>> working
>> > with images takes RAM. You want Google to buy more RAM for you but
>> refuse to
>> > pay for it.
>> >
>> > On Jun 15, 3:17 pm, Jaroslav Záruba <[email protected]> wrote:
>> >
>> >
>> >
>> > > > On Tue, Jun 15, 2010 at 7:33 PM, Kelly A <
>> [email protected]>
>> > > wrote:
>> > > > > Jaroslav,
>> >
>> > > > > Yes you can save but if you call images.resize(imagebits, 100,
>> 100) on
>> > > > > an image that is greater than 1 megabyte it will throw
>> > > > > "RequestTooLargeError: The request to API call images.Transform()
>> was
>> > > > > too large.".
>> >
>> > > >
>> http://code.google.com/appengine/docs/java/images/overview.html#Trans...
>> >
>> > > > import com.google.appengine.api.images.Image;
>> > > > import com.google.appengine.api.images.ImagesService;
>> > > > import com.google.appengine.api.images.ImagesServiceFactory;
>> > > > import com.google.appengine.api.images.Transform;
>> >
>> > > > // ...
>> > > >         BlobKey blobKey;  // ...
>> >
>> > > >         ImagesService imagesService =
>> > > ImagesServiceFactory.getImagesService();
>> >
>> > > >         Image oldImage =
>> ImagesServiceFactory.makeImageFromBlob(blobKey);
>> > > >         Transform resize = ImagesServiceFactory.makeResize(200,
>> 300);
>> >
>> > > >         Image newImage = imagesService.applyTransform(resize,
>> oldImage);
>> >
>> > > >         byte[] newImageData = newImage.getImageData();
>> >
>> > > --
>> > > You received this message because you are subscribed to the Google
>> Groups
>> > > "Google App Engine" group.
>> > > To post to this group, send email to
>> [email protected].
>> > > To unsubscribe from this group, send email to
>> > > [email protected]<google-appengine%[email protected]><google-appengine%2Bunsubscrib
>> [email protected]>
>> > > .
>> > > For more options, visit this group at
>> > >http://groups.google.com/group/google-appengine?hl=en.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Google App Engine" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected]<google-appengine%[email protected]>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/google-appengine?hl=en.
>>
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to