Bir resim dosyasından belirli bir bölgeyi alıp kullanabilmek için Visual Basic projemize Microsoft PictureClip Control 6.0 adlı komponenti ekleyelim. Bu komponentin özellikleri aşağıdaki gibidir.
Picture özelliği seçilecek dosyayı belirtir.
Cols ve Rows ifadeleri seçilen resmin karelere bölünmesini sağlar. Bu karelere index numarası verilir ve bu numarayı kullanarak istediğiniz parçayı seçebilirsiniz. Aşağıdaki örnekte imgKurbagacik isimli image nesnesi yatay ve düşeyde 4 parçaya bölünmüştür. Resim bu şekilde 16 parçaya ayrılmıştır. Buradan istediğimiz bir parçayı index numarasıyla seçerek kullanabiliriz. Bu seçim işleminde GraphicCell özelliği ile istediğimiz parçayı alabiliriz.
1 2 3 4 |
PictureClip1.Picture = imgKurbagacik.Picture PictureClip1.Cols = 4 PictureClip1.Rows = 4 PictureBox1.PaintPicture PictureClip1.GraphicCell(5) , 0 , 0 |
ClipX, ClipY, ClipWidth ve ClipHeight ifadeleri resmi karelere bölmeden sadece ölçü girerek istenilen kısmın alınmasını sağlar. Resmin Sol-Üst köşesi (0,0) noktası olarak kabul edilir. Resmin okunacak parçası için ClipX ifadesi yatayda ne kadarlık bir öteleme yapılacağı, ClipY ifadesi ise düşeyde ne kadarlık bir öteleme yapılacağını gösterir. ClipWidth ifadesi seçilecek alanın genişliği, ClipHeight ifadesi ise seçilecek alanın yüksekliğidir. Mesela, aşağıda sarı resim içerisinden yeşil olan bölge seçilmek istenmektedir.
1 2 3 4 5 6 7 8 9 10 |
' Öteleme resim.ClipX = 120 resim.ClipY = 70 ' Seçim resim.ClipHeight = 110 resim.ClipWidth = 100 ' Kullanım ekran.PaintPicture resim.Clip, 0, 0 |
StretchX ve StretchY özellikleri yapıştırılacak resmin esnetilmesini sağlar. Yukarıdaki resimde yeşil bölgenin ClipWidth değeri 100 alınmış. Bu resmi aynı ebatlarda yapıştırmayıp esnetmek isteyebiliriz. Bu durumda StretchX özelliği ile yapıştırma genişliği belirlenir. Aynı şekilde düşey işlem için StretchY ifadesi kullanılır. Bu özelliğin en pratik yanı resim üzerinde zoom efekti sağlamasıdır.