Save BMP souboru z PictureBoxu   otázka

VB.NET, Algoritmy, Grafika

Zdravím, jsem začátečník a učím se ukládat obsah PictureBoxu do souboru BMP.

Chtěl bych se zeptat zda-li někdo neví jak soubor uložit aniž by se mi zobrazil Dialog ukládání souboru.

Mám kód:

Me.PictureBox1.Image = New Bitmap(Me.PictureBox1.Width, Me.PictureBox1.Height)
        Dim g As Graphics = Graphics.FromImage(Me.PictureBox1.Image)
        Me.SaveFileDialog1.ShowDialog()
        Me.PictureBox1.Image.Save("c:\testik.bmp")
        Close()
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dialog se zobrazuje, protože o jeho zobrazení žádáte voláním Me.SaveFileDialog1.ShowDialog().

Navíc to pak stejně uložíte na pevně danou cestu a ne na místo, které uživatel vybral v tom dialogu.

Dejte ten řádek pryč a je to.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Děkuji za odpověď. Odmazat ten řádek jsem zkoušel, ale uloží mi to soubor bez obsahu PictureBoxu. Jako by to uložilo pozadí formuláře.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Uloží to to, co je v tom obrázku v dané chvíli nakreslené.

Vy tím kódem jen vytvoříte prázdnou bitmapu a hned ji uložíte, tím pádem bude prázdná.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

No právě že ne-e-e :) Uloží se prázdná bitmapa, která má 2 kB a když tam ten dialog je, tak se uloží 160 kB a obrázek je tam.

Je to záhadná záhada :)

Zkoušel jsem hledat na googlu ale je tam spousta špatných nápověd a Váš web je tak pěkně řešený, taxem si řek, že se zkusím zeptat u Vás v Diskusi.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

V tom případě máte chybu někde jinde.

Kdy do té bitmapy něco vykreslujete?

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Měl jste opět pravdu. Děkuji za nápovědu. Byla to fakt chyba při naplnění Pictureboxu.

Už to funguje.

Děkuji.

Tomáš

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Práce s bitmapou

Public Class Grafika
    
    Private Sub Grafika_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Vytvoření bitmapy s rozměry pictureBoxu:
        Dim btm As New Drawing.Bitmap(PictureBox1.Width, PictureBox1.Height)
        'Vytvožení objektu Graphics, který umožňuje s bitmapou pracovat
        Dim grf As Drawing.Graphics

        'Přiřazení bitmapy do vytvořeného objektu Graphics
        grf = Graphics.FromImage(btm)

        'Kreslení da bitmapu pomocí objektu Graphics
        grf.DrawLine(Pens.Blue, 10, 10, 100, 100)

        'Nahrání nakreslené bitmapy do PictureBoxu
        PictureBox1.Image = btm

        'Uložení obrázku
        PictureBox1.Image.Save("c:\testik.bmp")

        'Bitmapu lze uložit i bez nahrání do obrázku
        btm.Save("c:\testik2.bmp")
    End Sub

End Class

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Pěkné řešení, děkuji za příklad.

Jsem rád, že existuje tento web, kde se můžete na něco zeptat a dostanete odpověď.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback