Obrázky ze složky dát do listu – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Obrázky ze složky dát do listu – .NET – Fórum – Programujte.comObrázky ze složky dát do listu – .NET – Fórum – Programujte.com

 

antybart0
Návštěvník
26. 8. 2012   #1
-
0
-

Zdravím, chtěl bych se zeptat jak obrázky ze složky které mám pojmenované 00.png...31.png(jedná se o karty) dostat do Listu Images. Zkoušel jsem to takhle:  

  private List<Image> karty = new List<Image>();
        private string cesta = @"C:\Users\Luk8\Desktop\Dokumenty\others\prog\21_oko_bere\21_oko_bere\bin\Debug\images\";;        private void naplnList()
        {
            for (int i = 0; i < 32; i++)
            {
                karty.Add(cesta + i + ".png");
            }
        }

ale hlásí mi to Error 1 The best overloaded method match for 'System.Collections.Generic.List<System.Drawing.Image>.Add(System.Drawing.Image)' has some invalid arguments a že nemám přetypovanej string na images. Poradil by jste mi někdo jak to upravit? Díky

Nahlásit jako SPAM
IP: 217.29.8.–
dc1950
Newbie
26. 8. 2012   #2
-
0
-

Teď si nejsem tak úplně jistý, ale zkus nahradit 

karty.Add(cesta + i + ".png");

za 

karty.Add(Image.FromFile(cesta + i + ".png"));

To by mělo fungovat.
A ještě pro zjednodušení kódu a aby šel i na jiných PC, dej jako cestu :
 

private string cesta = Directory.GetCurrentDirectory() + @"\images\";

a na začátek programu napiš : 
 

using System.IO;

Nahlásit jako SPAM
IP: 82.100.0.–
antybart0
Návštěvník
26. 8. 2012   #3
-
0
-

#2 dc195
dík, už funguje, jenom nevím jak mám pak volat obrázek z toho listu do panelu

takhle jsem to zkoušel, 

 private void panel1_Paint(object sender, PaintEventArgs e)
        {
            Graphics kp = e.Graphics;
            kp.DrawImage(karty[0], 0, 0);
        }
       

 překladač to přeloží, ale při spuštění se v tom panelu zobrazí obdélník a v něm dvě červené uhlopříčky.

Nahlásit jako SPAM
IP: 217.29.8.–
ingiraxo+15
Grafoman
26. 8. 2012   #4
-
0
-

#3 antybart
pokud chceš obrázky načítat ze souboru přímo, tak je budeš muset načítat vždy, když je budeš potřebovat... nebo si je uložíš třeba do slovníku při prvním spuštění programu a volat je budeš z něho, je to mnohem rychlejší, ale zabere to paměť trochu

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
dc1950
Newbie
26. 8. 2012   #5
-
0
-

#4 ingiraxo
Nevím jak to chce antybart udělat, ale slovník stejně asi bude muset použít, aby mohl určit který obrázek označuje jakou kartu a mohl s tím potom pracovat :) Takže máš pravdu.

Nahlásit jako SPAM
IP: 82.100.0.–
antybart0
Návštěvník
26. 8. 2012   #6
-
0
-

no, chci udělat oko bere,  ale teď mě napadá jestli jsem tam ty obrázky neměl dát přes properties.resources;

a potom je volat Image prvni = properties.resources.prvni; a tohle dát do nějaké smyčky.

Nahlásit jako SPAM
IP: 217.29.8.–
ingiraxo+15
Grafoman
26. 8. 2012   #7
-
0
-

#6 antybart
to záleží, jestli chceš mít možnost obrázky měnit bez zásahu do kódu (můžeš mít složky, kde každá bude mít jiný obrázky)

pokud je dáš do zdrojů, tak budou konstantní, ale zas nebudou nikde externě

a hlavně používej typy png/jpg.. najdou se experti, co milujou bitmapy a aplikace dává rekordy ve svojí velikosti (z pár KB na několik MB)

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
antybart0
Návštěvník
26. 8. 2012   #8
-
0
-

příponu png mám, ale nechápu to co přesně mi tady popisuješ :D 

Nahlásit jako SPAM
IP: 217.29.8.–
VladislavK0
Super člen
27. 8. 2012   #9
-
0
-

#3 antybart
Tak nejek nevim jestli ti tato diskuze pomohla vyresit i ten druhy problem ???

Nahlásit jako SPAM
IP: 89.24.91.–
Manželka programátora pošle svého muže koupit chleba s dovětkem kdyby měly housky přines jich deset! Co přinese programátor??
antybart0
Návštěvník
27. 8. 2012   #10
-
0
-

ne, ale chtěl bych teda ty obrázky volat ze složky

Nahlásit jako SPAM
IP: 217.29.8.–
VladislavK0
Super člen
27. 8. 2012   #11
-
0
-

dej sem vic kodu at nevarim z vody

hlavne to misto kde volas tu dnes jiz upravenou metodu

private void naplnList()
        {
...

       }
Nahlásit jako SPAM
IP: 89.24.91.–
Manželka programátora pošle svého muže koupit chleba s dovětkem kdyby měly housky přines jich deset! Co přinese programátor??
ingiraxo+15
Grafoman
27. 8. 2012   #12
-
0
-

však co je na tom těžkýho, jen projdes adresář, kde se nacházej obrázky a přidáš si je do tabulky...

 doufám že to vyřeší problém.. takto bych to řešil já:

class Form1 : Form
{
    private static Hashtable images; // kolekce obrazku

    // nacte obrazky ze souboru
    public static void LoadImages(string rootPath, string[] allowedImages, ref Hashtable images)
    {
        if (allowedImages == null || allowedImages.Length == 0)
            return;

        if (images == null)
        {
            images = new Hashtable();
        }
        else images.Clear();

        foreach (string file in Directory.GetFiles(Path.Combine( Directory.GetCurrentDirectory(), rootPath)))
        {
            FileInfo fi = new FileInfo(file);

            if (!allowedImages.Contains(fi.Extension))
                continue;

            string index = fi.Name.Substring(0, fi.Name.Length - fi.Extension.Length).ToLower();
            images[index] = Image.FromFile(fi.FullName);
        }
    }

    // kontruktor pro Form1
    public Form1()
    {
        InitializeComponent();
        // ve slozce "./img" nacte vsechny obrazky "jpg a png"
        LoadImages("img", new string[] { ".jpg", ".png" }, ref images);

        // pouziti: "bagr" => nazev obrazku bez pripony a psano malymi pismeny
        Image prvni = images["bagr"];
    }

    ...
}
Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
antybart0
Návštěvník
28. 8. 2012   #13
-
0
-

#12 ingiraxo
dík, funguje

Nahlásit jako SPAM
IP: 217.29.8.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 4 hosté

Podobná vlákna

Editace listu listů — založil Matěj Andrle

Vycentrovanie listu — založil Peter

Hledání v listu — založil yaqwsx

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý