Java-dip-downloading-uploading-images
画像のダウンロードとアップロード
この章では、インターネットから画像をダウンロードし、画像に対していくつかの画像処理技術を実行し、処理した画像をサーバーに再度アップロードする方法について説明します。
画像をダウンロードする
ウェブサイトから画像をダウンロードするには、 URL という名前のJavaクラスを使用します。これは java.net パッケージにあります。 その構文は以下のとおりです-
上記のメソッドとは別に、簡単に説明したように、クラスURLで利用可能な他のメソッドがあります-
Sr.No. | Method & Description |
---|---|
1 |
public String getPath() URLのパスを返します。 |
2 |
public String getQuery() URLのクエリ部分を返します。 |
3 |
public String getAuthority() URLの権限を返します。 |
4 |
public int getPort() URLのポートを返します。 |
5 |
public int getDefaultPort() URLのプロトコルのデフォルトポートを返します。 |
6 |
public String getProtocol() URLのプロトコルを返します。 |
7 |
public String getHost() URLのホストを返します。 |
例
次の例は、Java URLクラスを使用してインターネットから画像をダウンロードする方法を示しています-
出力
上記のコマンドを実行すると、次の出力が表示されます。
サーバーから次の画像をダウンロードします。
画像をアップロードする
画像をウェブサーバーにアップロードする方法を見てみましょう。 BufferedImageをサーバーに送信するためにバイト配列に変換します。
Javaクラス ByteArrayOutputStream を使用します。これは java.io パッケージの下にあります。 その構文は以下のとおりです-
画像をバイト配列に変換するには、 ByteArrayOutputStream クラスの* toByteArray()*メソッドを使用します。 その構文は以下のとおりです-
上記のメソッドとは別に、簡単に説明したようにByteArrayOutputStreamクラスで利用可能な他のメソッドがあります-
Sr.No. | Method & Description |
---|---|
1 |
public void reset() このメソッドは、バイト配列出力ストリームの有効なバイト数をゼロにリセットし、ストリームに蓄積されたすべての出力が破棄されるようにします。 |
2 |
public byte[] toByteArray() このメソッドは、新しく割り当てられたバイト配列を作成します。 そのサイズは出力ストリームの現在のサイズになり、バッファーの内容がそこにコピーされます。 出力ストリームの現在の内容をバイト配列として返します。 |
3 |
public String toString() バッファの内容を文字列に変換します。 翻訳は、デフォルトの文字エンコーディングに従って行われます。 バッファのコンテンツから翻訳された文字列を返します。 |
4 |
public void write(int w) 指定された配列を出力ストリームに書き込みます。 |
5 |
public void write(byte []b, int of, int len) オフセットoffから始まるlen個のバイトをストリームに書き込みます。 |
6 |
public void writeTo(OutputStream outSt) このStreamのコンテンツ全体を指定されたストリーム引数に書き込みます。 |
例
次の例は、サーバーに画像をアップロードするByteArrayOutputStreamを示しています-
クライアントコード
サーバーコード
出力
クライアント側の出力
あなたがクライアントコードを実行すると、次の出力がクライアント側に表示されます-
サーバー側の出力
サーバーコードを実行すると、サーバー側に次の出力が表示されます-
画像を受信した後、サーバーは以下に示すように画像を表示します-