No ideas, anyone?
On Dec 16, 11:59 am, Ian Marshall <[email protected]> wrote: > I refer to the related post entitled "WARNING: No image reader found > for format "ico". An ImageIO plugin must be installed to use this > format with the DevAppServer." dated 7th June 2009 at: > > http://groups.google.com/group/google-appengine-java/browse_thread/th... > > where a query about the dev app server warnings below was raised, but > after Jason of Google asked a supplementary question he received no > response from the original poster. > > My web app uploads an image file from a web browser user and then, if > the file is larger than around 900kB I use the GAE/J ImagesService to > reduce the image data size to this level. An extract of my relevant > code is: > > byte[] baImageSource = [...]; // Data from an uploaded image file > int nNewWidth = [...]; // Calculate correct shrinkage > int nNewHeight = [...]; // Calculate correct shrinkage > > Image imgSource = ImagesServiceFactory.makeImage(baImageSource); > ImagesService isService = ImagesServiceFactory.getImagesService(); > Transform tfrm = ImagesServiceFactory.makeResize(nNewWidth, > nNewHeight); > Image imgNew = isService.applyTransform(tfrm, imgSource); > byte[] baResult = imgNew.getImageData(); // The shrunken image > data > > When I run my ImagesService code on my GAE/J development server > ((latest) version 1.4.0) I get the two warnings: > > 16-Dec-2010 10:40:18 > com.google.appengine.api.images.dev.LocalImagesService init > WARNING: No image reader found for format "ico". An ImageIO plugin > must be installed to use this format with the DevAppServer. > > 16-Dec-2010 10:40:18 > com.google.appengine.api.images.dev.LocalImagesService init > WARNING: No image reader found for format "tif". An ImageIO plugin > must be installed to use this format with the DevAppServer. > > My code runs well for shrinking .jpg files, but when I try this for > a .tif file of size 6.11 MB I get an IllegalArgumentException on my > call to ImagesService.applyTransform(...). (I set out a stack trace at > the foot of this post.) > > I have a few questions for those interested: > > · How do I get a "tif" ImageIO plug-in for the ImagesService ()? > · Should this plug-in be supplied with the GAE/J SDK in future > releases? > · Does this issue apply to the dev app server only (I have not yet > deployed this to production)? > > Cheers, > > Ian Marshall > > STACK TRACE WHEN TRANSFORMING A .TIF FILE > ----------------------------------------- > java.lang.IllegalArgumentException: Failed to read image > at > com.google.appengine.api.images.ImagesServiceImpl.convertApplicationException(ImagesServiceImpl.java: > 301) > at > com.google.appengine.api.images.ImagesServiceImpl.applyTransform(ImagesServiceImpl.java: > 73) > at > com.google.appengine.api.images.ImagesServiceImpl.applyTransform(ImagesServiceImpl.java: > 50) > at > com.google.appengine.api.images.ImagesServiceImpl.applyTransform(ImagesServiceImpl.java: > 39) > at [my package > path].business.MiscellaneousBusiness.compressImage(MiscellaneousBusiness.java: > 311) > at [my package > path].business.MiscellaneousBusiness.compressImage(MiscellaneousBusiness.java: > 236) > at [my package path].wicket.stuff.MyPage$5.onSubmit(MyPage.java:1348) > at org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java: > 1561) > at org.apache.wicket.markup.html.form.Form.process(Form.java:958) > at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java: > 920) > at java.lang.reflect.Method.invoke(Unknown Source) > at > com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java: > 100) > at > org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java: > 182) > at > org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java: > 73) > at > org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java: > 92) > at > org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java: > 1250) > at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329) > at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436) > at org.apache.wicket.RequestCycle.request(RequestCycle.java:545) > at > org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java: > 486) > at > org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java: > 319) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1157) > at > com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java: > 58) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1157) > at > com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java: > 43) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1157) > at > com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java: > 122) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1157) > at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: > 388) > at > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java: > 216) > at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: > 182) > at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: > 765) > at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: > 418) > at > com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java: > 70) > at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: > 152) > at com.google.appengine.tools.development.JettyContainerService > $ApiProxyHandler.handle(JettyContainerService.java:349) > at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: > 152) > at org.mortbay.jetty.Server.handle(Server.java:326) > at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: > 542) > at org.mortbay.jetty.HttpConnection > $RequestHandler.content(HttpConnection.java:938) > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) > at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) > at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) > at > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java: > 409) > at org.mortbay.thread.QueuedThreadPool > $PoolThread.run(QueuedThreadPool.java:582) -- You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
