» »

Srhanjevanje/branje slike iz Access baze

Srhanjevanje/branje slike iz Access baze

Microsoft ::

Nekako se mi je zataknilo pr tem.

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

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
s8eqaWrumatu*h-+r5wre3$ev_pheNeyut#VUbraS@e2$u5ESwE67&uhukuCh3pr

Zgodovina sprememb…

OwcA ::

Kakšno napako ti pa javi?
Otroška radovednost - gonilo napredka.

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
s8eqaWrumatu*h-+r5wre3$ev_pheNeyut#VUbraS@e2$u5ESwE67&uhukuCh3pr

Zgodovina sprememb…



Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Java skeniranje map in podmap

Oddelek: Programiranje
61149 (1038) nightrage
»

C# WPF nalaganje info. iz XML dokumenta

Oddelek: Programiranje
61028 (848) MrStein
»

[c#] shrani text, tabele, slike

Oddelek: Programiranje
251511 (1117) klemen93
»

[C#] Simobilov Glasnik

Oddelek: Programiranje
134338 (1418) Mrch
»

[JAVA] branje iz datoteke

Oddelek: Programiranje
242409 (2044) Bela01

Več podobnih tem