wPaintというjQueryプラグインを使用して、ユーザーが独自のイメージを描画できるようにしています。私は「のアプローチの両方が、以下を有する2つのアプローチを試みたBASE64、イメージを文字列としてPNGファイルに変換するには
、画像/ PNG:私は
データで始まる文字列としてサーバに文字列として得られる画像を送信します画像を保存できません。ファイルが書き込まれているが、画像は表示されません。この場合
アプローチ1
String imageData = parameterParser.getStringParameter("image", ""); byte[] imgByteArray = Base64.decodeBase64(imageData.getBytes()); FileOutputStream fileOutputStream = new FileOutputStream("/home/arvind/Desktop/test.png"); fileOutputStream.write(imgByteArray); fileOutputStream.close();
。ただし、ファイル拡張子を削除すると、サーバーに送信された文字列(imageDataにあるもの)が取得されます。
アプローチ2
String imageData = parameterParser.getStringParameter("image", ""); byte[] imgByteArray = Base64.decodeBase64(imageData.getBytes()); InputStream in = new ByteArrayInputStream(imgByteArray); BufferedImage bImageFromConvert = ImageIO.read(in); ImageIO.write(bImageFromConvert, "png", new File("/home/arvind/Desktop/test.png"));
たBufferedImage bImageFromConvertはnullであるので、ファイルが作成されたとき、私は例外(例外:IllegalArgumentException)を取得します。
Base64クラスは、Apacheコモンズコーデックライブラリのもので、バージョン1.2です。
私が間違っていることはありますか?
画像は次のように変換する方法:
は、今私は、これが最終的なコードで、サーバー側では、次のコード
を使用してサーバーにデータを送信しています文字列? –
のプラグインwPaint(実際にはjQueryプラグインです)には、画像を文字列に変換する関数があります。クライアント側で同じ文字列のimg srcを割り当てると、文字列が正しく変換されます。画像が表示されます。 –
それから同じプラグインでバイトに変換する必要があります。 –