Spojení 2 obrázků.   zodpovězená otázka

VB.NET, Algoritmy, Grafika

Dobrý den.

Potřebuji prosím poradit se spojením dvou obrázků.

Mám

Images\a.bmp

Images\b.bmp

A potřebuju vytvořit a uložit obrazek c.bmp, kde bude A a B posunuté např. o 30pixelů.

Moje pokusy zatím nikam nevedou, tak budu rád za jakékoliv ukázání cesty kudy se vydat.

Děkuji za pomoc.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
Dim offset As Integer = 30
Dim picture1 = Bitmap.FromFile("C:\1.bmp")
Dim picture2 = Bitmap.FromFile("C:\2.bmp")
'picture3 je výsledný spojený obrázek.
Dim picture3 As New Bitmap(picture1.Width + offset + picture2.Width, _
                           IIf(picture1.Height > picture2.Height, picture1.Height, picture2.Height))
Dim canvas = Graphics.FromImage(picture3)
canvas.DrawImageUnscaled(picture1, 0, 0)
canvas.DrawImageUnscaled(picture2, picture1.Width + offset, 0)
picture3.Save("C:\3.bmp", Imaging.ImageFormat.Bmp)

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

Děkuji za vyčerpávající ukázku.

Jediný problém mi nastává, že součet (picture1.Width + picture2.Width)

je menší, než skutečná velikost spojených obrázků, tudíž jsou zprava oříznutý (Offset "mezeru" jsem úplně vypustil). Nevíte co může zapřičiňovat takovou "anomálii"?

Nezkoušel jsem jiné obrázky, tak se může jednat o problém přímo v obrázcích (to mě napadlo až teď při psaní).

Vyřešil jsem to tak, že jsem napevno nastavil velikost obrázků a i nového bitmapu.

canvas.DrawImage(picture1, 0, 0, 60, 60)

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

Jsou 2 možnosti.

Buď máš nějakou botu ve výpočtech velikosti a polohy vykreslování (k tomu by bylo potřeba znát tvůj kód), nebo je ještě jedna možnost, a totiž, že mají obrázky různá dpi, nebo jiná dpi, než 96. Koukni do diskuse, kde jsme toto řešili: http://www.vbnet.cz/forum-tema--1966-v_2...

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

Máš pravdu je to v dpi :)

Díky

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

To bylo ale řešení. Nakonec na to Viktor přišel ;)

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