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) { }
3 Réponses :
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.
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); } }
Une autre possibilité est de faire une transformation inutile sur l'image (comme en rotation de 0 degré) après cette transformation, vous pouvez obtenir une largeur et une hauteur de l'image comme prévu: p> même si cela fonctionne, cette transformation influence la performance négativement;) p> p>