我需要使用App Engine BlobStore检索上传图像的高度和宽度.为了找到我使用以下代码:
try { Image im = ImagesServiceFactory.makeImageFromBlob(blobKey); if (im.getHeight() == ht && im.getWidth() == wd) { flag = true; } } catch (UnsupportedOperationException e) { }
我可以上传图像并生成BlobKey但是当将Blobkey传递给makeImageFromBlob()时,它会生成以下错误:
java.lang.UnsupportedOperationException: No image data is available
如何解决这个问题或任何其他方式直接从BlobKey找到图像的高度和宽度.
解决方法
Image上的大多数方法本身都会抛出UnsupportedOperationException.
所以我使用com.google.appengine.api.blobstore.BlobstoreInputStream.BlobstoreInputStream来操作blobKey中的数据.这是我可以获得图像宽度和高度的方式.
所以我使用com.google.appengine.api.blobstore.BlobstoreInputStream.BlobstoreInputStream来操作blobKey中的数据.这是我可以获得图像宽度和高度的方式.
byte[] data = getData(blobKey); Image im = ImagesServiceFactory.makeImage(data); if (im.getHeight() == ht && im.getWidth() == wd) {} private byte[] getData(BlobKey blobKey) { InputStream input; byte[] oldImageData = null; try { input = new BlobstoreInputStream(blobKey); ByteArrayOutputStream bais = new ByteArrayOutputStream(); byte[] byteChunk = new byte[4096]; int n; while ((n = input.read(byteChunk)) > 0) { bais.write(byteChunk,n); } oldImageData = bais.toByteArray(); } catch (IOException e) {} return oldImageData; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。