Bagikan melalui


Cara Mengisi Bentuk dengan Gambar

Sama seperti ubin dapat ditempatkan di samping satu sama lain untuk menutupi lantai, gambar persegi panjang dapat ditempatkan di samping satu sama lain untuk mengisi (ubin) suatu bentuk. Untuk melapisi bagian dalam bentuk, gunakan kuas tekstur. Saat Anda membuat objek TextureBrush, salah satu argumen yang Anda teruskan ke konstruktor adalah objek Image. Ketika Anda menggunakan kuas tekstur untuk melukis bagian dalam bentuk, bentuknya diisi dengan salinan berulang dari gambar ini.

Properti mode pembungkusan dari objek TextureBrush menentukan orientasi gambar saat diulang dalam kisi persegi panjang. Anda dapat membuat semua petak dalam kisi memiliki orientasi yang sama, atau Anda dapat membuat gambar berubah dari satu posisi kisi ke posisi berikutnya. Pembalikan dapat dilakukan secara horizontal, vertikal, atau keduanya. Contoh berikut menunjukkan pengubinan dengan berbagai jenis pembalikan.

Untuk memiringkan gambar

  • Contoh ini menggunakan gambar berukuran 75×75 untuk menjubin persegi panjang 200×200.

Gambar petak yang menunjukkan rumah merah dan pohon.

  • Ilustrasi berikut menunjukkan bagaimana persegi panjang dilapisi dengan gambar. Perhatikan bahwa semua ubin memiliki orientasi yang sama; tidak ada pembalikan.

Sebuah persegi panjang dengan gambar yang disusun menggunakan orientasi yang sama untuk semua ubin.

Image image = new Bitmap("HouseAndTree.gif");
TextureBrush tBrush = new TextureBrush(image);
Pen blackPen = new Pen(Color.Black);
e.Graphics.FillRectangle(tBrush, new Rectangle(0, 0, 200, 200));
e.Graphics.DrawRectangle(blackPen, new Rectangle(0, 0, 200, 200));
Dim image As New Bitmap("HouseAndTree.gif")
Dim tBrush As New TextureBrush(image)
Dim blackPen As New Pen(Color.Black)
e.Graphics.FillRectangle(tBrush, New Rectangle(0, 0, 200, 200))
e.Graphics.DrawRectangle(blackPen, New Rectangle(0, 0, 200, 200))

Untuk membalik gambar secara horizontal saat proses mengatur ubin

  • Contoh ini menggunakan gambar 75×75 yang sama untuk mengisi persegi panjang 200×200. Mode bungkus diatur untuk membalik gambar secara horizontal. Ilustrasi berikut menunjukkan bagaimana persegi panjang dilapisi dengan gambar. Perhatikan bahwa saat Anda berpindah dari satu petak ke petak berikutnya dalam baris tertentu, gambar dibalik secara horizontal.

Ubin persegi panjang dengan gambar dibalik secara horizontal.

Image image = new Bitmap("HouseAndTree.gif");
TextureBrush tBrush = new TextureBrush(image);
Pen blackPen = new Pen(Color.Black);
tBrush.WrapMode = WrapMode.TileFlipX;
e.Graphics.FillRectangle(tBrush, new Rectangle(0, 0, 200, 200));
e.Graphics.DrawRectangle(blackPen, new Rectangle(0, 0, 200, 200));
Dim image As New Bitmap("HouseAndTree.gif")
Dim tBrush As New TextureBrush(image)
Dim blackPen As New Pen(Color.Black)
tBrush.WrapMode = WrapMode.TileFlipX
e.Graphics.FillRectangle(tBrush, New Rectangle(0, 0, 200, 200))
e.Graphics.DrawRectangle(blackPen, New Rectangle(0, 0, 200, 200))

Untuk membalik gambar secara vertikal saat penyusunan ubin

  • Contoh ini menggunakan gambar 75×75 yang sama untuk mengisi persegi panjang 200×200. Mode pembungkusan diatur untuk membalik gambar secara vertikal.

    Image image = new Bitmap("HouseAndTree.gif");
    TextureBrush tBrush = new TextureBrush(image);
    Pen blackPen = new Pen(Color.Black);
    tBrush.WrapMode = WrapMode.TileFlipY;
    e.Graphics.FillRectangle(tBrush, new Rectangle(0, 0, 200, 200));
    e.Graphics.DrawRectangle(blackPen, new Rectangle(0, 0, 200, 200));
    
    Dim image As New Bitmap("HouseAndTree.gif")
    Dim tBrush As New TextureBrush(image)
    Dim blackPen As New Pen(Color.Black)
    tBrush.WrapMode = WrapMode.TileFlipY
    e.Graphics.FillRectangle(tBrush, New Rectangle(0, 0, 200, 200))
    e.Graphics.DrawRectangle(blackPen, New Rectangle(0, 0, 200, 200))
    
    

Untuk membalik gambar secara horizontal dan vertikal saat ubin

  • Contoh ini menggunakan gambar 75×75 yang sama untuk mengisi persegi panjang 200×200. Mode pembungkusan diatur untuk membalik gambar secara horizontal dan vertikal. Ilustrasi berikut menunjukkan bagaimana persegi panjang ditempeli oleh gambar. Perhatikan bahwa saat Anda berpindah dari satu petak peta ke petak berikutnya dalam baris tertentu, gambar dibalik secara horizontal, dan saat Anda berpindah dari satu petak peta ke petak berikutnya di kolom tertentu, gambar dibalik secara vertikal.

Ubin persegi panjang dengan gambar dibalik secara horizontal dan vertikal.

Image image = new Bitmap("HouseAndTree.gif");
TextureBrush tBrush = new TextureBrush(image);
Pen blackPen = new Pen(Color.Black);
tBrush.WrapMode = WrapMode.TileFlipXY;
e.Graphics.FillRectangle(tBrush, new Rectangle(0, 0, 200, 200));
e.Graphics.DrawRectangle(blackPen, new Rectangle(0, 0, 200, 200));
Dim image As New Bitmap("HouseAndTree.gif")
Dim tBrush As New TextureBrush(image)
Dim blackPen As New Pen(Color.Black)
tBrush.WrapMode = WrapMode.TileFlipXY
e.Graphics.FillRectangle(tBrush, New Rectangle(0, 0, 200, 200))
e.Graphics.DrawRectangle(blackPen, New Rectangle(0, 0, 200, 200))

Lihat juga