2014-11-06 5 views
0

내 WP8 앱에서 사진을 찍어 내 sqlce 데이터베이스에 저장할 수있었습니다. 문제는 인터넷으로 전송해야하는 사진의 크기이며 크기는 사진 당 최소 4MB입니다.사진 크기 변경 Windows Phone 8

내 앱에서 사진을 캡처 한 후 사진의 크기를 줄여야합니다.

private void camera_Completed(object sender, PhotoResult e) 
    { 
     if (e.TaskResult == TaskResult.OK && e.Error == null) 
     { 
      image = new System.Windows.Media.Imaging.BitmapImage(); 

      image.SetSource(e.ChosenPhoto); 

      Imagem.Source = image; 
     } 
    } 

, 나는이 코드를 사용하고 내 SQLCE 데이터베이스에 이미지를 저장하려면 이미지를 얻을 :

byte[] ConvertImage() 
    { 
     if (image == null) return null; 

     MemoryStream ms = new MemoryStream(); 
     WriteableBitmap wb = new WriteableBitmap(image); 
     wb.SaveJpeg(ms, image.PixelWidth, image.PixelHeight, 0, 100); 
     return ms.ToArray(); 
    } 

심지어 JPEG 형식으로 저장을의 여기

내 코드입니다 바이트로 표시된 크기는 여전히 너무 크다고 생각합니다.

+0

http://writeablebitmapex.codeplex.com/ 또는 http://developer.nokia.com/ lumia/nokia-apis/imaging 특정 코드가 필요한지 알려주십시오 – FunksMaName

+0

@FunksMaName 이미 writeablebitmapex를 사용하고 있지만 그림 크기를 줄이는 방법을 찾지 못했습니다. –

답변

1

두 가지 방법으로 이미지 크기를 조정할 수 있습니다. 품질 (이미지 크기에 영향을 미치는) (감소)

// Resizes the WriteableBitmap to 200px wide and 300px high using a bilinear interpolation method 
var resized = writeableBmp.Resize(200, 300, WriteableBitmapExtensions.Interpolation.Bilinear) 

및/또는 조절 :

WritableBitmapEx 샘플 코드 : 작은 하나에 이미지 해상도의 크기를 조정

public static void SaveJpeg(
    this WriteableBitmap bitmap, 
    Stream targetStream, 
    int targetWidth, 
    int targetHeight, 
    int orientation, 
    int quality 
) 

당신은 모두 사용할 수 있습니다 행동 양식.

0

이 코드에 이것을 시도

byte[] ConvertImage() 
{ 
    if (image == null) return null; 

    MemoryStream ms = new MemoryStream(); 
    WriteableBitmap wb = new WriteableBitmap(image); 
    wb.SaveJpeg(ms, image.PixelWidth/4, image.PixelHeight/4, 0, 100); 
    return ms.ToArray(); 
} 

당신은 또한 할 수있는/2 또는 필요한 어떤