Změna velikosti obrázku   otázka

ASP.NET WebForms

Ahoj řeším tento problém: Ukádám obrázky z FileUploadu do databáze a potřeboval bych změnit jejiv velikost(z MB na KB) a rozměry(třeba na 200x200)

Upload jsem vyřešil takhle:

if (FileUpload1.HasFile)
            {
                if (typSouboru == "image/jpeg" || typSouboru == "image/gif")
                {
                    HttpPostedFile soubor = FileUpload1.PostedFile;

                        imgByte = new Byte[soubor.ContentLength];

                        soubor.InputStream.Read(imgByte, 0, soubor.ContentLength);
                        
                    
                    pokracovatObrazek = true;
                }
                else
                {
                    Label6.Text = "Obrázek musí mít příponu JPEG nebo GIF ";
                }
            }

Ale nevím si rady se změnami rozměrů

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

Něco takovéhohle:

Image source = Image.FromStream(soubor.InputStream);  // načíst původní obrázek

Bitmap target = new Bitmap(200, 200); // nový obrázek o rozměrech 200x200
Graphics g = Graphics.FromImage(target);  // vytvořit grafické plátno
g.DrawImage(source, 0, 0, 200, 200);  // nakreslit obrázek do nového zmenšeně
target.Save(Path.Combine(Request.PhysicalApplicationPath, "images/obr.jpg"), Imaging.ImageFormat.Jpeg)  // uložit

Asi jsou tam chyby, píšu z hlavy.

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

diky za radu ale nějak se trápím aby se mi to po zmenšení celé uložilo do proměnné imgByte

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

Staci to ulozit do MemyStream a pak si vratit buffer.

Staci kod (viz vise) lehce upravit.


// pridat MemoryStream
MemoryStream MemStream = new MemoryStream();

// Zmenit posledni radek na tento
target.Save(MemStream, ImageFormat.Jpeg);

// Ulozeni do pole byte[]
imgByte = MemStream.GetGuffer();

nahlásit spamnahlásit spam 0 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