Forum » Programiranje » [c#] slika v picturebox in izbris z diska
[c#] slika v picturebox in izbris z diska
japol ::
Ko vstavim sliko v picturebox, jo želim istočasno tudi izbrisati z diska.
Primer: odprem sliko v picturebox1, jo popravim, uredim,... in jo želim shraniti (prepisati obstoječo sliko).
Napaka ki mi jo javi je:
The process cannot access the file 'C:\Users\..............jpg' because it is being used by another process.
Slike nimam nikjer drugje odprte, zato predvidevam da je "another process" kar moj program.
Ko sliko odprem se nekako ne sme več navezovati na tisto ki je na disku (da jo bom lahko prepisal).
Poskušal sem s tem:
in
ampak s tem odstrani sliko.
Primer: odprem sliko v picturebox1, jo popravim, uredim,... in jo želim shraniti (prepisati obstoječo sliko).
Napaka ki mi jo javi je:
The process cannot access the file 'C:\Users\..............jpg' because it is being used by another process.
Slike nimam nikjer drugje odprte, zato predvidevam da je "another process" kar moj program.
Ko sliko odprem se nekako ne sme več navezovati na tisto ki je na disku (da jo bom lahko prepisal).
Poskušal sem s tem:
pictureBox1.Image.Dispose ( );
in
pictureBox1.Image = null;
ampak s tem odstrani sliko.
japol ::
Sliko odprem z openfiladialogom, tako:
in vsatvim v list:
in potem iz lista v picturebox.
popraviti sem moral v:
sliko sem moral vstaviti preko bitmapa, ne pa direktno.
Image s1 = Image.FromFile(.....);
in vsatvim v list:
l1.Ls1.Add(s1);
in potem iz lista v picturebox.
popraviti sem moral v:
Image s1 = Image.FromFile(.....); Bitmap bm1 = new Bitmap(s1); l1.Ls1.Add(bm1);
sliko sem moral vstaviti preko bitmapa, ne pa direktno.
darkkk ::
Prvo kar mi pade na pamet:
probi skopirat s1 v s2 (ampak pazi, da res kopiraš in ne samo kopiraš reference).
probi skopirat s1 v s2 (ampak pazi, da res kopiraš in ne samo kopiraš reference).
cekr ::
Takole nekako gre. Dokler nimaš slike v gradniku(picturebox) prikazane, ti ne bo dovolil brisanja.
Referenca slike je cel čas do eventa paint na pictureboxu. Potem se lahko sprosti.
To pa lahko zaobideš s forsiranjem painta z uporabo refresh.
Če se ne znajdeš v VB povej, pa ti naredim v C#.
Dim _bmP As Bitmap
_bmP = New Bitmap("xmassOvca.JPG")
PictureBox1.Image = _bmP
PictureBox1.Refresh()
_bmP.Dispose()
Referenca slike je cel čas do eventa paint na pictureboxu. Potem se lahko sprosti.
To pa lahko zaobideš s forsiranjem painta z uporabo refresh.
Če se ne znajdeš v VB povej, pa ti naredim v C#.
Dim _bmP As Bitmap
_bmP = New Bitmap("xmassOvca.JPG")
PictureBox1.Image = _bmP
PictureBox1.Refresh()
_bmP.Dispose()
Sinclair ZX Spectrum [Zilog Z80A - 3.5 MHz, 48kB, dvojni kasetofon,
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [c#] ukaz radirkaOddelek: Programiranje | 1120 (913) | japol |
» | [c#] picturebox, slika na slikoOddelek: Programiranje | 1089 (899) | japol |
» | [C#] Naključno razporejanje elementov v tabeliOddelek: Programiranje | 2700 (2381) | TheAmunraaa |
» | [c#] Slika iz URLOddelek: Programiranje | 2625 (2212) | MrBrdo |
» | C# metodaOddelek: Programiranje | 1985 (1856) | davaman |