Hoe afbeeldingen in een SQL-database op WP7 op te slaan

Ik probeer wanhopig een afbeelding op te slaan in een SQL-database en laad deze vervolgens op mijn WP. Alle online-handleidingen zeggen dat de afbeelding naar een byte-array moet worden geconverteerd, opgeslagen en vervolgens in een afbeelding wordt geladen.

Tot nu toe heb ik de afbeelding kunnen opslaan in een Byte-array met behulp van:

    public static byte[] ConvertToBytes(Stream photoStream)   
    {   
        byte[] a = new Byte[photoStream.Length];   
        for (int i = 0; i < photoStream.Length; i++)   
        {   
            a[i] = (Byte)photoStream.ReadByte();   
        }   
        return (a);
    } 

Dit genereert een Byte-array die qua grootte vergelijkbaar is met de afbeelding die ik bewaar.

De voorgestelde manier om afbeeldingen te laden is:

    1 public static BitmapImage ConvertToImage(Byte[] inputBytes)   
    2 {   
    3     MemoryStream stream = new MemoryStream(inputBytes);   
    4     BitmapImage image = new BitmapImage();   
    5     image.SetSource(stream);   
    6     return (image);   
    7 }  

Dit werkt niet.

Ik krijg deze foutmelding (op regel 5): "Ongespecificeerde fout"

Heeft iemand enig idee hoe dit te repareren of een alternatieve methode/code kan suggereren?

Ik weet dat er informatie online is - ik kan je verzekeren dat ik lang en hard heb gezocht naar een werkmethode en niets heb kunnen laten werken.

Alle hulp zou zeer op prijs gesteld worden!

3
@DJKRAZE: in dit voorbeeld wordt System.Drawing gebruikt, wat niet wordt ondersteund in WP7.
toegevoegd de auteur Gert Arnold, de bron
@CameronFisher: dus uw grootste probleem is nu hoe u de afbeelding kunt weergeven?
toegevoegd de auteur Gert Arnold, de bron
probeer deze link redmondpie. com/& hellip; ik weet zeker dat het kan helpen
toegevoegd de auteur MethodMan, de bron
als hij de afbeeldingen op een locatie zou opslaan en een naam als zodanig.jpg zou het werken geloof ik geloof me als ik het verkeerd heb GertArnold
toegevoegd de auteur MethodMan, de bron
Geef aan hoe u invoerbytes uit de database ontvangt.
toegevoegd de auteur Davide Piras, de bron
Voor testdoeleinden gebruik ik de database niet eens. Ik converteer een afbeelding naar bytes en stuur die bytes vervolgens naar ConvertToImage. Ik kijk nu naar je link DJ KRAZE
toegevoegd de auteur Cameron, de bron
Dat is precies mijn probleem - normale C# is prima, het zit gewoon in WP7 Ik heb mijn probleem. In principe kiest de gebruiker een foto uit de fotoshub - deze moet dan in de database worden opgeslagen en vervolgens op een later tijdstip worden opgehaald en weergegeven.
toegevoegd de auteur Cameron, de bron

2 antwoord

Ik heb dit opgelost met behulp van:

public static byte[] ConvertToBytes(String imageLocation)
    {
        StreamResourceInfo sri = Application.GetResourceStream(new Uri(imageLocation, UriKind.RelativeOrAbsolute));
        BinaryReader binary = new BinaryReader(sri.Stream);

        byte[] imgByteArray = binary.ReadBytes((int)(sri.Stream.Length));

        binary.Close();
        binary.Dispose();
        return imgByteArray;
    }

    public static WriteableBitmap ConvertToImage(Byte[] inputBytes)
    {
        MemoryStream ms = new MemoryStream(inputBytes);
        WriteableBitmap img = new WriteableBitmap(400, 400);

        img.LoadJpeg(ms);

        return (img);
    }

Bedankt voor al je hulp jongens.

2
toegevoegd

ik heb die code gebruikt

  byte[] Arr = Convert.FromBase64String(Im); >> i think you need that steep 
 Stream memStream = new MemoryStream(Arr);

                                    WriteableBitmap wbimg = PictureDecoder.DecodeJpeg(memStream);

                                    image2.Source = wbimg;
                                    image2.Tag = IlbumID;

als dat nat werkt

proberen

memStream.Read (Arr ,0, Arr.Length );
1
toegevoegd
im is een waarde uit SQL-database
toegevoegd de auteur raed, de bron
Bedankt, maar ik krijg "COMException was unhandled" ... "Unspecified error". "memStream.Read (Arr, 0, Arr.Length);" geeft een integer terug?
toegevoegd de auteur Cameron, de bron