GAE - получить ширину и высоту изображения на стороне сервера - PullRequest
3 голосов
/ 08 декабря 2011

Я работаю с таким приложением, как галерея изображений. Это позволяет пользователю выбрать файл со своего компьютера и загрузить изображение. После загрузки изображения это изображение будет отображаться в галерее. Я сохраняю изображение в blobstore и получаю его по blobkey. Я хочу получить уменьшенное изображение (которое было изменено с оригинального изображения) На стороне сервера я пытаюсь использовать image api, чтобы изменить размер оригинала, основываясь на его blobkey, как это

public String getImageThumbnail(String imageKey) {
    BlobKey blobKey = new BlobKey(imageKey);
    Image oldImage = ImagesServiceFactory.makeImageFromBlob(blobKey);
    /*
    * can not get width anf height of "oldImage"
    * then I try to get imageDate of old Image to create a new image like this
    */
    byte[] oldImageData = oldImage.getImageData();

   Image newImage1 = ImagesServiceFactory.makeImage(oldImageData);
/*
* however
* oldImage.getImageData(); return null/""
* and cause the Exception when call this ImagesServiceFactory.makeImage(oldImageData)
*/

}

Кто-нибудь работал с api-изображением на стороне сервера, пожалуйста, дайте мне знать, как получить ширину и высоту изображения, создаваемого из blobkey или байта

Ответы [ 2 ]

1 голос
/ 09 декабря 2011

Спасибо всем за чтение Я решил свою проблему с помощью этого

    ImagesService imagesService = ImagesServiceFactory.getImagesService();
    BlobKey blobKey =  new BlobKey(imageKey);
    BlobInfo blobInfo = new BlobInfoFactory().loadBlobInfo(blobKey);
    byte[] bytes = blobstoreService.fetchData(blobKey, 0, blobInfo.getSize());
    Image oldImage = ImagesServiceFactory.makeImage(bytes);
    int w = oldImage.getWidth();
    int h = oldImage.getHeight();
0 голосов
/ 08 декабря 2011

Объект изображения имеет данные о росте / весе:

int width = oldImage.getWidth();
int height = oldImage.getHeight();
...