2012-04-15 14 views
0

イメージをIsolated Storageに保存する前に、イメージのサイズを縮小しようとしています。私はすでにそれを最低解像度(640x480)に減らしました。どのようにして、約1MBで出てくるものではなく、100kbに​​バイトを減らすことができますか?イメージのサイズを小さくするには

void cam_CaptureImageAvailable(object sender, Microsoft.Devices.ContentReadyEventArgs e) 
    { 

     string fileName = folderName+"\\MyImage" + savedCounter + ".jpg"; 

     try 
     { 

      // Set the position of the stream back to start 
      e.ImageStream.Seek(0, SeekOrigin.Begin); 

      // Save picture as JPEG to isolated storage. 
      using (IsolatedStorageFile isStore = IsolatedStorageFile.GetUserStoreForApplication()) 
      { 
       using (IsolatedStorageFileStream targetStream = isStore.OpenFile(fileName, FileMode.Create, FileAccess.Write)) 
       { 

        // Initialize the buffer for 4KB disk pages. 
        byte[] readBuffer = new byte[4096]; 
        int bytesRead = -1; 

        // Copy the image to isolated storage. 
        while ((bytesRead = e.ImageStream.Read(readBuffer, 0, readBuffer.Length)) > 0) 
        { 
         targetStream.Write(readBuffer, 0, bytesRead); 
        } 

       } 

      } 




     } 
     finally 
     { 
      // Close image stream 
      e.ImageStream.Close(); 
     } 

    } 
+0

圧縮による。 –

+0

圧縮方法 –

答えて

0

私はWindowsの携帯電話については何も持っていませんが、多分このリンクがお手伝いします: http://msdn.microsoft.com/en-us/library/ff769549(v=vs.92).aspx

1)あなたのjpeg 2をロード)は 3をビットマップにコピーする)品質設定 http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.extensions.savejpeg(v=vs.92).aspxとビットマップとして保存

+0

'var bitmapImage = new BitmapImage();で保存しようとすると、無効なクロススレッドアクセスが発生します。 bitmapImage.SetSource(e.ImageStream); WriteableBitmap wb = new WriteableBitmap(bitmapImage); IsolatedStorageFile myStore = IsolatedStorageFile.GetUserStoreForApplication(); using(IsolatedStorageFileStream myFileStream = myStore.CreateFile(fileName)) { wb.SaveJpeg(myFileStream、10、10、0、70); } ' –

+0

私が言ったように、私はWindows phoneについて何も知らない:P – zgnilec

関連する問題