4

私はかなりうまく機能しているWindows 8アプリを持っています.Windows Phone 8用に同じアプリを書きたいのですが、正しい画像ではなく黒い画像しか得られません.

これは、画像ファイルをアップロードするための私のコードです

if ((_fileType == ".jpg" || _fileType == ".png" || _fileType == ".jpeg") && _fileSize < 3500000)
{
    byte[] myPicArray = ConvertToBytes(_bmpFile);
    HttpClient httpClient = new HttpClient();
    httpClient.BaseAddress = new Uri(MYURI);
    MultipartFormDataContent form = new MultipartFormDataContent();
    HttpContent content = new ByteArrayContent(myPicArray);
    form.Add(content, "media", _randomStringFileName + _fileType);

    HttpResponseMessage response = await httpClient.PostAsync("upload.php", form);
}

これは私の画像をバイト配列に変換するためのコードです

private byte[] ConvertToBytes(BitmapImage bitmapImage)
{
    using (MemoryStream ms = new MemoryStream())
    {
        WriteableBitmap btmMap = new WriteableBitmap
            (bitmapImage.PixelWidth, bitmapImage.PixelHeight);

        // write an image into the stream
        Extensions.SaveJpeg(btmMap, ms,
            bitmapImage.PixelWidth, bitmapImage.PixelHeight, 0, 100);

        return ms.ToArray();
    }
}

正しい画像ではなく、黒い画像しか得られない理由を誰か知っていますか? 画像は PhotoChooseTask によって選択されました。

4

1 に答える 1

3

PhotoChooseTask はすでに Stream を提供しているので、代わりにそれを使用する必要があります (デバイスへの書き込みやサムネイルの生成などでまだビジー状態であるため、BitMap はまだ使用できません)。

        PhotoResult photoResult = e as PhotoResult;
        MemoryStream memoryStream = new MemoryStream();
        photoResult.ChosenPhoto.CopyTo(memoryStream);
        byte[] myPicArray = memoryStream.ToArray();
于 2013-03-15T23:23:37.207 に答える