GDI +를 사용하여 ImageList에 저장 한 두 개의 PNG를 병합 한 다음 PictureBox에 표시하려고합니다. 내 PictureBox 크기, 첫 번째 이미지 크기 및 두 번째 이미지 크기가 모두 동일합니다. 이 코드는 간단 할 것이라고 생각했지만 다음 코드는 작동하지 않으며 이유가 확실하지 않습니다. 검색 한 적이 있지만 PictureBox를 다루는 코드 스 니펫을 찾을 수 없습니다.두 개의 투명한 이미지를 Picturebox에 병합
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
PictureBox1.Image = Nothing
Dim myGraphic As Graphics = PictureBox1.CreateGraphics
myGraphic.DrawImageUnscaled(ImageList1.Images(0), 0, 0)
myGraphic.DrawImageUnscaled(ImageList1.Images(1), 0, 0)
End Sub
내가 누락 된 부분을 아는 사람이 있습니까? 순간에 버튼을 클릭하면 Splitsecond 동안 이미지가있는 PictureBox 깜박임이 보입니다.
미리 감사드립니다.
답장을 보내 주셔서 감사합니다. 두 번째 이미지가 투명도가있는 오버레이이기 때문에 덮어 쓰게됩니다. 제가 성취하고자하는 일의 예가 여기에 있습니다 : http://www.codeproject.com/KB/cs/Merge_Images_in_C_.aspx 저는 그것을하고 싶습니다. 그러나 파일에 글쓰기 대신에 그것을 보여주고 싶습니다. PictureBox (내 프로그램은 VB.Net C#이 아닙니다). 그림 상자를 무효화하여 무슨 뜻인지 설명해 주시겠습니까? 그리고 최소화/최대화 작업을 시도했지만 아무 일도 없었습니다. – quantum
Easy : Control.Invalidate() 메서드 만 호출하면됩니다. 여기를 참고하십시오 : http://msdn.microsoft.com/en-us/library/system.windows.forms.control.invalidate(v=vs.71).aspx 실제 화면으로 그리는 데는 비용이 많이 드는 프로세스이기 때문에 존재합니다. 따라서 drawable 서페이스에 드로잉하는 각 작업의 각 단계를 보여주는 대신에 드로잉 할 수있는 모든 서페이스를 그려서 서페이스를 업데이트하도록 지시합니다. 그건 그렇습니다. * 나는 당신이 당신의 접근 방식으로 모든 길을 잘못 가고 있다고 생각합니다. 모든 그리기 논리를 컨트롤의 ** 페인트 이벤트 **에 배치해야합니다. – Pedery