Képek egymásra helyezése - Középre igazítás

Képek egymásra helyezése - Középre igazítás
2014-10-06T19:51:22+02:00
2014-10-07T22:12:22+02:00
2022-12-01T16:30:37+01:00
SZLMCL
Sziasztok!

Két képet szeretnék egymásra helyezni úgy, hogy a második (kissebb) kép az első bitkép közepén helyezkedjen el vízszintesen és függőlegesen is.
Ezt a kódot sikerült összehozni:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Using Bmp As New Bitmap(250, 250, Imaging.PixelFormat.Format32bppPArgb) Bmp.SetResolution(300, 300) Using G = Graphics.FromImage(Bmp) G.Clear(Color.Blue) G.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic G.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias G.TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias Dim i As Bitmap = New Bitmap(Image.FromFile("V:\eventlog.png")) Dim img As Bitmap = ReplaceBlackColorToWhite(i) G.DrawImage(img, GetInnerImageInsertPoint(Bmp, img)) End Using Bmp.Save("V:\test.png", ImageFormat.Png) End End Using End Sub Private Function GetInnerImageInsertPoint(ByVal backimage As Bitmap, ByVal overimage As Bitmap) As Point Dim left As Integer = backimage.Width / 2 - overimage.Width / 2 Dim top As Integer = backimage.Height / 2 - overimage.Height / 2 Return New Point(left, top) End Function

A probéma először is az, hogy a második kép nincs középen, és ha megnézem az eredeti méretét (48x48 px), olyan mintha nagyobb lenne a VB által generált képen (olyan, mintha felnagyítaná kicsit). Jobban belemerülve észrevettem, hogy nem jó a GetInnerImageInsertPoint függvény, mert ott pixelekkel számolok, a VB -nek pedig Point típus kell, amit át kell konvertálni (továbbá figyelembe kell venni a vízszintes és függőleges DPI -ket is). Viszont hiába próbáltam átkonvertálni, eddig nem sikerült megtalálnom a helyes megoldást. Tudtok segíteni a fenti kód kijavításában?

Köszi előre is!
Mutasd a teljes hozzászólást!
Ha dpi-t akarasz beállítani neki, akkor mentés előtt tedd közvetlen, és nem lesz gondod többé.:)
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd