sorry System.arraycopy() is not correct.
modified getBytes() method:
public static byte[] getBytes(InputStream inputStream) throws
IOException
{
int bufferLength = 1024;
byte[] buffer = new byte[bufferLength];
ArrayList<Byte> list = new ArrayList<Byte>();
int readLength, totalLength = 0;
while ((readLength = inputStream.read(buffer, 0, bufferLength)) >= 0)
{
for (int i = 0; i < readLength; i++)
list.add(buffer[i]);
}
byte[] retArray = new byte[list.size()];
for (int i = 0; i < list.size(); i ++)
retArray[i] = list.get(i);
return retArray;
}
On May 26, 11:23 am, campos <[email protected]> wrote:
> Hi,
>
> I'm now switching Java. Given a URL for an image, my application wants
> to read the contents of the image and get to image height & width via
> Image API.
>
> Here's my code. But the format is not correct parsed by Image Service.
>
> String strUrl = "http://lh5.ggpht.com/_7zgrL7SM-9s/SVeaMu07FKI/
> AAAAAAAAAaE/r1fP9ufeCpg/s800/add_to_chart.jpg";
>
> InputStream inputStream = HttpRequest.getResponseStream(strUrl);
> byte[] content = HttpRequest.getBytes(inputStream);
> Image image = ImagesServiceFactory.makeImage(content);
>
> public static InputStream getResponseStream(String url)
> {
> try
> {
> HttpURLConnection connection = (HttpURLConnection)new URL
> (url).openConnection();
> connection.setRequestMethod("GET");
> connection.setDoInput(true);
>
> connection.connect();
> return connection.getInputStream();
> }
> catch (IOException e)
> {
> e.printStackTrace();
> }
> return null;
>
> }
>
> public static byte[] getBytes(InputStream inputStream) throws
> IOException
> {
> int bufferLength = 1024;
> byte[] buffer = new byte[bufferLength];
> ArrayList<byte[]> list = new ArrayList<byte[]>();
>
> int readLength, totalLength = 0;
> while ((readLength = inputStream.read(buffer, 0, bufferLength)) >= 0)
> {
> if (readLength == bufferLength)
> {
> list.add(buffer);
> }
> else
> {
> byte[] temp = new byte[readLength];
> System.arraycopy(buffer, 0, temp, 0, readLength);
> list.add(temp);
> }
>
> totalLength += readLength;
> }
>
> byte[] returnBytes = new byte[totalLength];
> for (int i = 0, pos = 0; i < list.size(); i ++)
> {
> byte[] currentArray = list.get(i);
> System.arraycopy(currentArray, 0, returnBytes, pos,
> currentArray.length);
> pos += currentArray.length;
> }
> return returnBytes;
>
> }
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google App Engine" 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?hl=en
-~----------~----~----~----~------~----~------~--~---