Avatar billede doomstone-dk- Nybegynder
24. december 2007 - 14:47 Der er 11 kommentarer og
1 løsning

string to image

Sidder med et lille problem :D jeg har et jpg fil i en string. og jeg kan ikke lige finde ud af at lave det om til classen image!

er ikke helt 100 på hvilken format koden i stringen er i, men jeg ved at i php kan man bare echo stringen og sende "jpeg" til headder, så virker det :D

En der kan hjælpe mig med det?
Avatar billede nielle Nybegynder
25. december 2007 - 09:28 #1
Hvordan ser din kode ud?

Hvorfor har du i øvrigt lagt den ind i en string? Strigs er ike specielt velegnet til den slags i .NET (strings er til UFT-16 encoded tekst) - en byte[] ville være meget mere relevant.
Avatar billede doomstone-dk- Nybegynder
25. december 2007 - 12:26 #2
public image image()
{
            this.streamWriter.WriteLine("/capture");
            this.streamWriter.Flush();

            this.streamReader.ReadLine();
            char[] cbuffer = new char[1024];
            int count = this.streamReader.Read(cbuffer, 0, 1024);
            string final = new string(cbuffer, 0, count);

            //return Image.FromStream(final);
            return final;
}

Problemet er at det komme fra en stream, streamen stopper ikke når blillede er slut, men forsætter og venter på nye commando'er.
Jeg er rimelig nye i C# så har ikke helt så meget forstand på det :D
Avatar billede nielle Nybegynder
25. december 2007 - 14:21 #3
Nu er StreamReader og StreamWriter klasserne ikke specielt velegnet til at læse binære data med. De er beregnet til at læse tekst, og i .net er tekst som regel på unicode form - en char fylder to bytes.

Men muligvis er du heldig og dette vil virke:

        public Image image()
        {
            this.streamWriter.WriteLine("/capture");
            this.streamWriter.Flush();

            this.streamReader.ReadLine();  // skal denne her mon være der??
            return Image.FromStream(this.streamReader.BaseStream);
        }
Avatar billede doomstone-dk- Nybegynder
25. december 2007 - 15:06 #4
Men vil FromStream virke når det et er en uendelig stream?
Streamen stopper først når jeg sender /exit til server!
Avatar billede doomstone-dk- Nybegynder
25. december 2007 - 15:17 #5
Jov har lige tested det, og det får programmet til at gå i baglås da den venter på at streamen slutter, vilket den ikke gør :(
Avatar billede doomstone-dk- Nybegynder
26. december 2007 - 17:26 #6
Ingen der kan hjælpe med dette?
Avatar billede nielle Nybegynder
26. december 2007 - 19:47 #7
Jeg synes at det lyder lidt som en umulig opgave at ville lave det på den måde.. Hvordan skal programmet vide hvornår det har modtaget hele billedet? Desuden er StreamReader som sagt ikke lige designet til overførelse af rå byte data.
Avatar billede doomstone-dk- Nybegynder
26. december 2007 - 23:33 #8
Hmm jeg har jo selve stregen i "final".
Der ud over er der en måde at man kan se om den er færdig da den sender "---" når al koden er sendt.

Har prøvet at læse lidt vidre, kunne det være en ide at uploade det til memory og streame det der fra?
Avatar billede md_craig Nybegynder
27. december 2007 - 12:17 #9
Hvad er det overhovedet det skal bruges til?....

Transport over netværk?... i så fald ville jeg nok have en seperat command stream (alm. streamReader) og så have en BinaryStream til overførsel af data på en anden port...

Men ellers... hvor sender du billedet?... eller hvor kommer det fra?...
For ville om ikke andet så konvertere fra billedets byte til unicode (netop for at spare 1 byte pr. byte), og så konvertere fra string tilbage til byte array med unicode...

Men med det man ved om det du har gang i på nuværende tidspunkt er det godt nok ikke nemt at hjælpe...
Avatar billede nielle Nybegynder
27. december 2007 - 12:34 #10
Du kan ikke bruge den version du har som en string. Den behandles af C# som om det var et Unicoded stykke tekst. Det du skal bruge er enten et array af bytes eller bytes i en stream - muligvis en MemoryStream ville være det bedste.
Avatar billede doomstone-dk- Nybegynder
11. maj 2008 - 17:34 #11
Kan jeg ikke få jeg til at skrive noget som et svar, så vi kan få lukket denne tråd? :D
Avatar billede nielle Nybegynder
12. maj 2008 - 08:01 #12
Jo da :^)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester