yuy*_*007 2 java google-app-engine image
我正在使用GAE [JAVA]进行一些图像处理.GAE不允许将文件写入磁盘,所以我希望我的App允许输入一个URL,然后我想检查这个指定的URL是否代表一个图像,如果是,我想得到它的高度和宽度.
有没有人提供一些解决方案来告诉我如何实现这个?
您可以使用GAE Image API.解决问题的简单示例如下:
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
final InputStream inputStream = url.openStream();
int read;
while ((read = inputStream.read()) != -1) {
baos.write(read);
}
final Image image = ImagesServiceFactory.makeImage(baos.toByteArray());
resp.getWriter().println("image width: " + image.getWidth());
resp.getWriter().println("image height: " + image.getHeight());
} catch (final IOException e) {
resp.getWriter().println("image doesn't exists!");
} catch (final IllegalArgumentException e) {
resp.getWriter().println("invalid image!");
}
Run Code Online (Sandbox Code Playgroud)
完成Servlet来执行此操作:
package foo.bar;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.appengine.api.images.Image;
import com.google.appengine.api.images.ImagesServiceFactory;
@SuppressWarnings("serial")
public class MyFirstWebAppServlet extends HttpServlet {
@Override
public void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws IOException {
URL url;
if ("exists".equals(req.getParameter("image"))) {
url = new URL("https://www.google.com/logos/classicplus.png");
} else if ("notImage".equals(req.getParameter("image"))) {
url = new URL("http://www.google.com");
} else {
url = new URL("http://foo.bar/image.png");
}
resp.setContentType("text/plain");
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
final InputStream inputStream = url.openStream();
int read;
while ((read = inputStream.read()) != -1) {
baos.write(read);
}
final Image image = ImagesServiceFactory.makeImage(baos.toByteArray());
resp.getWriter().println("image width: " + image.getWidth());
resp.getWriter().println("image height: " + image.getHeight());
} catch (final IOException e) {
resp.getWriter().println("image doesn't exists!");
} catch (final IllegalArgumentException e) {
resp.getWriter().println("invalid image!");
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1465 次 |
最近记录: |