6
votes

ERREUR: JAVA.LANG.UNSUPPORTEDOPERATIONEXCEPTION: Aucune donnée d'image n'est disponible lors de l'utilisation de l'API BLOBSTORE ET IMAGE DE L'APPO

J'ai besoin de récupérer la hauteur et la largeur de l'image téléchargée à l'aide du moteur d'application Blobstore. Pour trouver que j'ai utilisé après le code suivant:

try {
            Image im = ImagesServiceFactory.makeImageFromBlob(blobKey);

            if (im.getHeight() == ht && im.getWidth() == wd) {
                flag = true;
            }
        } catch (UnsupportedOperationException e) {

        }


0 commentaires

3 Réponses :


7
votes

La plupart des méthodes sur l'image elle-même auront actuellement une introduction non prêtée. J'ai donc utilisé com.google.appengine.api.blobstore.blobstoreInputStream.blobstoreInputStream pour manipuler des données de Blobkey. C'est quand je peux obtenir une largeur de l'image et une hauteur. XXX


0 commentaires

4
votes

Si vous pouvez utiliser GUAVA, la mise en œuvre est plus facile à suivre:

public static byte[] getData(BlobKey blobKey) {
    BlobstoreInputStream input = null;
    try {
        input = new BlobstoreInputStream(blobKey);
        return ByteStreams.toByteArray(input);
    } catch (IOException e) {
        throw new RuntimeException(e);
    } finally {
        Closeables.closeQuietly(input);
    }
}


0 commentaires

0
votes

Une autre possibilité est de faire une transformation inutile sur l'image (comme en rotation de 0 degré) xxx

après cette transformation, vous pouvez obtenir une largeur et une hauteur de l'image comme prévu: xxx

même si cela fonctionne, cette transformation influence la performance négativement;)


0 commentaires