내 응용 프로그램에 두 개의 (실제로는 많은) PNG (.png) 이미지가 있습니다. 둘 다 투명한 영역을 여기저기서 가지고 있습니다.두 개의 PNG 이미지를 .NET을 사용하여 하나의 이미지로 결합
내 응용 프로그램에서 두 이미지를 가져 와서 결합하고 결과를 그림 상자에 표시하고 싶습니다. 나중에 버튼을 통해 결과를 저장하려고합니다.
지금까지 나는 두 이미지를 찾고 결합했지만 투명성 문제는 해결되지 않습니다. 즉, 한 이미지를 다른 이미지 위에 올려 놓으면 이미지의 배경이 일반 흰색 상자이기 때문에 최상위 이미지 만 결과로 볼 수 있습니다. 어느 쪽이 아닌가.
Dim Result As New Bitmap(96, 128)
Dim g As Graphics = Graphics.FromImage(Result)
Dim Name As String
For Each Name In BasesCheckList.CheckedItems
Dim Layer As New Bitmap(resourcesPath & "Bases\" & Name)
For x = 0 To Layer.Width - 1
For y = 0 To Layer.Height - 1
Result.SetPixel(x, y, Layer.GetPixel(x, y))
Next
Next
Layer = Nothing
Next
resourcesPath
내 자원 폴더의 경로입니다 : 여기
Bases
은 그 안에있는 폴더입니다. 이미지 이름은
Name
입니다.
고맙습니다. 한 가지를 제외하고는 제대로 작동하는 것 같습니다. 결과 이미지를 미리보기 위해 사용하는 그림 상자에 이미지의 "크기가 조정 된, 더 큰"버전이 표시됩니다. 결국 나는 PictureBox.Image = Result를 사용했다. 왜 이미지가 그런 식으로 표시되는지 이해할 수 없다. – Voldemort
@Omega : 이미지는 쓰고있는 비트 맵과 같은 크기인가? –
예, 비트 맵 "결과"는 96x128이고 테스트에 사용하는 두 비트 맵은 96x128입니다. 그러나 그림 상자는 2 또는 뭔가로 결과를 확대하는 것으로 보인다 ... – Voldemort