[ rodjeni @ 27.06.2007. 10:59 ] @
Imam pitanje kako da spojim dvije ili vise slika u C# u jednu?

Naime zelim da uzmem odredjenu sliku iz direktorija i da joj ispod nje pridruzim jos jednu, i jos jednu itd.

Na kraju te slike treba da spasim kao jednu sliku, tj. kao jednu cjelinu.

Otprilike ako imam slike dimenzija x=150 * y=150 i sada ubacim recimo 8 tih slika, treba da na kraju dobijem jednu cjelinu koja ce biti velika 150x1200, s tim sto mi se taj proces ne smije odvijati na ekranu, nego samo da program potrazi zadane mu slike, sam ih slozi bez ljepljenja na ekran i spasi novu sliku.
[ DarkMan @ 27.06.2007. 12:36 ] @
Code:

            Bitmap bitmap = new Bitmap(150, 150 * 8);
            Graphics g = Graphics.FromImage(bitmap);
            for(int i = 0; i < 8; i++) {
                Bitmap tmp = new Bitmap("d:\\slika" + i.ToString("00") + ".jpg");
                if(tmp != null) {
                    g.DrawImage(tmp, 0, i * 150);
                    tmp.Dispose();
                }
            }
            g.Dispose();
            bitmap.Save("d:\\slika.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
[ rodjeni @ 27.06.2007. 12:43 ] @
Hvala, idem ovo probati pa javim rezultat
[ rodjeni @ 27.06.2007. 13:23 ] @
radi kako treba. Hvala velika
[ irena85 @ 18.08.2009. 13:59 ] @
Ja ovdje nista nerazumijem, a imam isti problem htijela bih spojiti vise slika u jednu. Molim vas za pomoc...
[ DarkMan @ 18.08.2009. 15:23 ] @
Code:

 // kreiramo sliku velicine 150 x (150*8) u koju ce se smestiti 8 slika velicine 150x150 vertikalno naslagano
 Bitmap bitmap = new Bitmap(150, 150 * 8);

 // kreiramo Graphics objekat koji ce nam pomocu da crtamo po nasoj slici koju smo prethodno kreirali
 Graphics g = Graphics.FromImage(bitmap);

// pod pretpostavkom da su slike na hard disku smestene u datotekama pod sledecim imenima:
//   slika00.jpg, slika 01.jpg, ..., slika07.jpg
// kreiracemo petlju od 0 do 7 koja ce ucitati ove slike
for(int i = 0; i < 8; i++) {
                
  // ucitavamo sliku sa lokacije "D:\slika##.jpg" gde je ## broj slike, u ovom slucaju promenljiva i
  Bitmap tmp = new Bitmap("d:\\slika" + i.ToString("00") + ".jpg");

  // ovde bi trebalo da je provera da li je slika ucitana, mada samo ovakva provera != null nije bas dovoljna
   // jer u slucaju da dodje do greske pri ucitavanju slike desice se exception
  // pa bi u sustini trebalo ceo kod u petlji staviti u try { } catch { } blok
  if(tmp != null) {

    // iscrtavamo ucitanu sliku na nasu veliku sliku na koordinatama 0 x (i*150) sto znaci da se
    // u svakoj iteraciji Y koordinata uvecava za 150
    g.DrawImage(tmp, 0, i * 150);

     // metodom Dispose se oslobadjaju resursi koji su zauzeti ucitanom slikom
    tmp.Dispose();
  }
}
// ovde se oslobadjaju resursi zauzeti objektom Graphics
g.Dispose();

// kreiranu sliku zatim snimamo po zelji (u ovom slucaju na "d:\slika.jpg")
// format snimljene slike nije odredjen ekstenzijom imena datoteke vec ovim drugim parametrom metode Save
bitmap.Save("d:\\slika.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);

// sada moze i za ovu snimljenu sliku da se odradi Dispose, ako se vise nece koristiti
bitmap.Dispose();

Nadam se da je sada jasnije.
Pozdrav.