Trasferir Imagens de uma Aplicação Java para WebService C#

Olá a Todos. Boa Tarde!

Estou com um problema. Procurei em muitos fóruns mas não obtive exito.

** Tenho uma aplicação em Android(Java) usando o MotoDev.
** Tenho também um WebService(C#) usando .Net.

Seguinte, Já consegui consumir dados do WebService Usando o Java. Através da biblioteca Ksoap.

Estou quase finalizando minha aplicação, porem sempre tem aqueles problemas.

Tenho uma Pasta dentro do Smart Phone que guarda Fotos(.jgp)
Preciso fazer o upload dos arquivos(.jpg) dessa pasta para meu WebService.
Consultar o Web Service eu já consigo.
Mas devido as limitações de comunicação entre C# e Java não consigo passar um Uma Imagem ou um Arquivo direto.

O correto seria transformar essa imagem em uma string ou algo do tipo, para posteriormente enviar ao WebService.

Alguem sabe como Converter uma Imagem em String ou Como fazer essa transferência de Image do Android(Java)
para WebService(C#) ?

Desde já agradeço.

Ola Pessoal, é com grande satisfação que consegui resolver o meu problema.
Depois de dias tentando, eu consegui.
A solução é realmente do jeito que eu estava pensando.

A Logica ficou assim:
(Java)
*** Obter a Imagem do diretório no Android(java)
*** Transformar a Imagem em Code(Base64) no java
*** Chamar a Thread que conversa com o Método do Web Service(C#) de dentro do java
(C# Web Service)
*** Dentro do Método receber o parâmetro passado pelo java que é nada mais nada menos que a Imagem convertida no formato Base64(String)
*** Converter esse parâmetro para uma Image do tipo System.Drawing.Image;
*** Depois salvar essa Imagem no diretório do Servidor Usando o próprio obj Image com o Método Save.

Segue o Código:


*** JAVA ***

/*
import java.io.File;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import ClassesBanco.DBAdapter;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import ClassesBanco.;
import android.widget.
;
import android.util.Base64;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import java.io.ByteArrayOutputStream;
*/

// IMPORTAR FOTOS
private String fotosString = “”;
private String fotosNome = “”;
private String retornoEnviarFoto = “”;

private void EnviarFotos()
{
File rootFotos = new File(PATH_FOTOS);
File[] fotos = rootFotos.listFiles();

              for (File fileFoto : fotos) { 
              if(fileFoto.exists()) 
              { 
              fotosNome += ";" + fileFoto.getName(); 
              Bitmap foto = BitmapFactory.decodeFile(PATH_FOTOS + fileFoto.getName()); 
              fotosString += ";" + encodeTobase64(foto); 
              } 
              else 
              { 
              retornoEnviarFoto += "Foto não encontrada: " + fileFoto.getName(); 
              return; 
              } 
              } 
              
              try 
              {	
              threadEnviarFotos.start(); 
              } 
              catch(Exception ex) 
              {	
              threadEnviarFotos.stop(); 
              } 
              
              // Aguarda 
              while(threadEnviarFotos.isAlive()) 
              { 
              Aguardar(1000); 
              } 

}

public static String encodeTobase64(Bitmap image){
Bitmap immagex=image;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
immagex.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] b = baos.toByteArray();
String imageEncoded = Base64.encodeToString(b,Base64.DEFAULT);
return imageEncoded;
}

public Thread threadEnviarFotos = new Thread(){
@Override
public void run() {
try {
SOAP_ACTION = “http://tempuri.org/EnviarFoto”;
METHOD_NAME = “EnviarFoto”;
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
request.addProperty(“paramFotosString”, fotosString);
request.addProperty(“paramNomeFotos”, fotosNome);

              HttpTransportSE ht = new HttpTransportSE(URL, 900000); 
              ht.call(SOAP_ACTION, envelope); 

              final SoapPrimitive response = (SoapPrimitive)envelope.getResponse(); 
              final String retornoWs = response.toString(); 
              retornoEnviarFoto = retornoWs; 
              } 
              catch (Exception e) { 
              retornoEnviarFoto = "Erro Chamada WS";	
              } 
              } 

};


*** Agora Segue aqui meu código do Web Service - C# ***

using System.IO;
using System.Drawing;

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public bool EnviarFoto(string paramFotosString, string paramNomeFotos)
{
if (String.IsNullOrEmpty(paramFotosString) || String.IsNullOrEmpty(paramNomeFotos)) return false;
string[] fotosString = paramFotosString.Split(’;’);
string[] fotosNome = paramNomeFotos.Split(’;’);
string caminhoFotos = System.Configuration.ConfigurationManager.AppSettings[“CaminhoFotos”].ToString();

              try 
              { 
              for (int i = 1; i < fotosNome.Length; i++) 
              { 
              Image img = Base64ToImage(fotosString[i]); 
              img.Save(caminhoFotos + "\\" + fotosNome[i]); 
              } 

              return true; 
              } 
              catch (Exception ex) 
              { 
              return false; 
              } 

}

private Image Base64ToImage(string base64String)
{
// Convert Base64 String to byte[]
byte[] imageBytes = Convert.FromBase64String(base64String);
MemoryStream ms = new MemoryStream(imageBytes, 0,
imageBytes.Length);

              // Convert byte[] to Image 
              ms.Write(imageBytes, 0, imageBytes.Length); 
              Image image = Image.FromStream(ms, true); 
              return image; 

}