Forum » Programiranje » Srhanjevanje/branje slike iz Access baze
Srhanjevanje/branje slike iz Access baze
Microsoft ::
Nekako se mi je zataknilo pr tem.
Do slike pridem takole:
Sliko shranim takole:
Image je byte[], kamor preberem sliko, name pa size sta stringa. V Access imam Data Type za Image na OLE Object.
Potem pa preberem vsebino:
Izpisano dobim tole:
64,0,73,0,109,0,97,0,103,0,101,0,
Gre pa za tole sliko.
No, sedaj je najvecji problem ta, da te stevilke ne morem spravit nazaj v sliko pa da bi videl, kaj je to. Na veliko straneh najdem sledec primer:
Bitmap bmp = new Bitmap(memorystream)
Samo meni noce delat, ker je memorystream tipa MemoryStream in ne Stream. Ampak na ogromno straneh sem nasel primer, ko naredi MemoryStream, tega pa kasneje uporabi pri Bitmap. Samo meni javi napako.
Recimo, na tejle strani proti koncu je kat primer.
Me pa tudi zanima, ce je vnasaje slike pravilno.
by Miha
p.s.:Tole z vnasanjem kode je prav tecno. Kako vnest kodo, da ne bo jamral za neke znake, pa da ne bo raztegnal v tri pm?
Do slike pridem takole:
Stream stream = new WebClient().OpenRead(url); Image image = Image.FromStream(stream); int idx = url.LastIndexOf("/"); name = url.Substring(idx+1); size = image.Size.ToString(); //Tole je zato, da se dobi velikost, ker Stream to noce... MemoryStream ms = new MemoryStream(); image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); int length = (int)ms.Length; byte[] buffer = new byte[length]; stream.Read(buffer, 0, (int)length); stream.Close();
Sliko shranim takole:
command.CommandText = "INSERT INTO Images ([image],[name],[size]) VALUES (" + '"' + "@Image" + '"' + ", " + '"' + name + '"' + ", " + '"' + size + '"' + ")"; ommand.Parameters.Add("@Image", OleDbType.Binary).Value = image;
Image je byte[], kamor preberem sliko, name pa size sta stringa. V Access imam Data Type za Image na OLE Object.
Potem pa preberem vsebino:
byte[] b = (byte[])reader.GetValue(0); MemoryStream memorystream = new MemoryStream(); memorystream.Write(b, 0, b.Length); string str = ""; for(int a=0; a<b.Length; a++) str += b[a].ToString() + ","; MessageBox.Show(str, "b");
Izpisano dobim tole:
64,0,73,0,109,0,97,0,103,0,101,0,
Gre pa za tole sliko.
No, sedaj je najvecji problem ta, da te stevilke ne morem spravit nazaj v sliko pa da bi videl, kaj je to. Na veliko straneh najdem sledec primer:
Bitmap bmp = new Bitmap(memorystream)
Samo meni noce delat, ker je memorystream tipa MemoryStream in ne Stream. Ampak na ogromno straneh sem nasel primer, ko naredi MemoryStream, tega pa kasneje uporabi pri Bitmap. Samo meni javi napako.
Recimo, na tejle strani proti koncu je kat primer.
Me pa tudi zanima, ce je vnasaje slike pravilno.
by Miha
p.s.:Tole z vnasanjem kode je prav tecno. Kako vnest kodo, da ne bo jamral za neke znake, pa da ne bo raztegnal v tri pm?
s8eqaWrumatu*h-+r5wre3$ev_pheNeyut#VUbraS@e2$u5ESwE67&uhukuCh3pr
- spremenil: Microsoft ()
OwcA ::
Samo meni noce delat, ker je memorystream tipa MemoryStream in ne Stream.
Kaj ko bi malo pretvarjal med tipi? Drugače nekako zbledi poanta polimorfizma.
Tole z vnasanjem kode je prav tecno. Kako vnest kodo, da ne bo jamral za neke znake, pa da ne bo raztegnal v tri pm?
Uporabi* znački [ st.koda c]...[ /st.koda]
*brez presledka med [ in s
Otroška radovednost - gonilo napredka.
Microsoft ::
Sej to st.koda sem zdej uporabu, samo potem zadevo zelo raztegne. Vsaj meni.
Bi pretvarju, samo nevem, kako. Stream ne mores naredit takole:
Stream s = new Stream();
s.Read(memorystream);
In tole gre:
Stream s = memorystream;
Samo zajamra, ko napisem tole:
Bitmap bmp = new Bitmap(stream);
Pa tud z tistim kastingom (Stream) nekako ne gre.
by Miha
Bi pretvarju, samo nevem, kako. Stream ne mores naredit takole:
Stream s = new Stream();
s.Read(memorystream);
In tole gre:
Stream s = memorystream;
Samo zajamra, ko napisem tole:
Bitmap bmp = new Bitmap(stream);
Pa tud z tistim kastingom (Stream) nekako ne gre.
by Miha
s8eqaWrumatu*h-+r5wre3$ev_pheNeyut#VUbraS@e2$u5ESwE67&uhukuCh3pr
Zgodovina sprememb…
- spremenil: Microsoft ()
Microsoft ::
System.ArgumentException: Invalid parameter used.
at System.Drawing.Bitmap..ctor(Stream stream)
Pa tam, kjer preberem sliko, sem jo potem poskusil iz tistih prebranih bajtov nazaj sestavit in narisat, pa dela, kot more.
Samo navrhu imam Stream stream, spodaj pa imam MemoryStream memorystream. Image pa ne morem narediti takole:
Image img = Image.FromStream(memorystream);
Pac, isti problem. Ker ni Stream. Videl sem tudi, da imajo drugi z isto kodo problem, samo nevem, kako so to resili. Pise zi, samo meni nic ne pomaga. klik Bi blo mozno kaj na tem, da jst uporabljam VS 2003? Pa da mam nek .NET 2.0 gor?
by Miha
at System.Drawing.Bitmap..ctor(Stream stream)
Pa tam, kjer preberem sliko, sem jo potem poskusil iz tistih prebranih bajtov nazaj sestavit in narisat, pa dela, kot more.
Samo navrhu imam Stream stream, spodaj pa imam MemoryStream memorystream. Image pa ne morem narediti takole:
Image img = Image.FromStream(memorystream);
Pac, isti problem. Ker ni Stream. Videl sem tudi, da imajo drugi z isto kodo problem, samo nevem, kako so to resili. Pise zi, samo meni nic ne pomaga. klik Bi blo mozno kaj na tem, da jst uporabljam VS 2003? Pa da mam nek .NET 2.0 gor?
by Miha
s8eqaWrumatu*h-+r5wre3$ev_pheNeyut#VUbraS@e2$u5ESwE67&uhukuCh3pr
Zgodovina sprememb…
- spremenil: Microsoft ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Java skeniranje map in podmapOddelek: Programiranje | 1149 (1038) | nightrage |
» | C# WPF nalaganje info. iz XML dokumentaOddelek: Programiranje | 1028 (848) | MrStein |
» | [c#] shrani text, tabele, slikeOddelek: Programiranje | 1511 (1117) | klemen93 |
» | [C#] Simobilov GlasnikOddelek: Programiranje | 4338 (1418) | Mrch |
» | [JAVA] branje iz datotekeOddelek: Programiranje | 2409 (2044) | Bela01 |