Uri를 가지고 비트맵으로 변경후 사이즈 조절 후
다시 Uri 받아오고 싶은 어떻게 해야 할지 잘모르겠네요.
해볼려고 했는데 ... 계속 에러가
public Uri iamgeSizeChange(Uri selPhtoUri, String imageName){
String path = null;
try {
Bitmap bm = Images.Media.getBitmap(getContentResolver(), selPhtoUri);
bm = Bitmap.createScaledBitmap(bm, 90, 90, true);
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
bm.compress(CompressFormat.JPEG, 100, bytes);
path = Images.Media.insertImage(getContentResolver(), bm, imageName, null);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return Uri.parse(path);
}
최종 목적은 파일서버에 저장 하는 것입니다.
private class back extends AsyncTask<String, String, String>{
@Override
protected String doInBackground(String... urls) {
// TODO Auto-generated method stub
try{
FileInputStream mFileInputStream = new FileInputStream(urls[2]);
URL connectUrl = new URL(urls[0]);
System.out.println("mFileInputStream is " + mFileInputStream);
//open connection
System.out.println("open connection");
HttpURLConnection conn = (HttpURLConnection)connectUrl.openConnection();
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setRequestMethod("POST");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
//write data
System.out.println("write data");
DataOutputStream dos = new DataOutputStream(conn.getOutputStream());
dos.writeBytes(towHyphens + boundary + lindEnd);
dos.writeBytes("Content-Disposition: form-data; name=\"uploadedfile\";filename=\"" + urls[1]+".jpg"+"\""+lindEnd);
dos.writeBytes(lindEnd);
int bytesAvailable = mFileInputStream.available();
int maxBufferSize = 1024;
int bufferSize = Math.min(bytesAvailable, maxBufferSize);
byte[] buffer = new byte[bufferSize];
int bytesRead = mFileInputStream.read(buffer, 0, bufferSize);
System.out.println("image byte is "+ bytesRead);
//read image
System.out.println("read image");
while(bytesRead > 0){
dos.write(buffer, 0, bufferSize);
bytesAvailable = mFileInputStream.available();
bufferSize = Math.min(bytesAvailable, maxBufferSize);
bytesRead = mFileInputStream.read(buffer, 0, bufferSize);
}
dos.writeBytes(lindEnd);
dos.writeBytes(towHyphens + boundary + towHyphens + lindEnd);
//close streams
System.out.println("File is written");
mFileInputStream.close();
dos.flush(); //finish upload...
//get response
int ch;
InputStream is = conn.getInputStream();
StringBuffer b = new StringBuffer();
while((ch = is.read() ) != -1){
b.append((char)ch);
}
String s = b.toString();
System.out.println("result ="+s);
dos.close();
}catch(Exception e){
System.out.println("error : " + e.getMessage());
e.printStackTrace();
}
return null;
}
}