Mam obraz o pewnym wzorze. Jak mogę go powtórzyć na innym obrazie przy użyciu GDI? Czy jest jakiś sposób to zrobić w GDI?Powtórz obraz w C#
Odpowiedz
W języku C#, można utworzyć TextureBrush że będziemy ułóż swój obraz w dowolnym miejscu, a następnie wypełnij nim obszar. Coś takiego (przykład, który wypełnia cały obraz) ...
// Use `using` blocks for GDI objects you create, so they'll be released
// quickly when you're done with them.
using (TextureBrush brush = new TextureBrush(yourImage, WrapMode.Tile))
using (Graphics g = Graphics.FromImage(destImage))
{
// Do your painting in here
g.FillRectangle(brush, 0, 0, destImage.Width, destImage.Height);
}
Uwaga, jeśli chcesz jakąś kontrolę nad tym, w jaki sposób obraz jest płytki, będziesz musiał nauczyć się trochę o transformacji.
zapomniałbym (właściwie, zapomniał na chwilę): Musisz importować System.Drawing
(dla Graphics
i TextureBrush
) i System.Drawing.Drawing2D
(dla WrapMode
) w celu podania kodu powyżej do pracy, jak jest.
Nie ma funkcja malować konkretny obraz jako „wzór” (malowanie go wielokrotnie), ale powinno być dość proste do zrobienia:
public static void FillPattern(Graphics g, Image image, Rectangle rect)
{
Rectangle imageRect;
Rectangle drawRect;
for (int x = rect.X; x < rect.Right; x += image.Width)
{
for (int y = rect.Y; y < rect.Bottom; y += image.Height)
{
drawRect = new Rectangle(x, y, Math.Min(image.Width, rect.Right - x),
Math.Min(image.Height, rect.Bottom - y));
imageRect = new Rectangle(0, 0, drawRect.Width, drawRect.Height);
g.DrawImage(image, drawRect, imageRect, GraphicsUnit.Pixel);
}
}
}
@sam: Podajesz prostokąt na obiekcie 'Graphics', który chcesz wypełnić obrazem. –
- 1. Powtórz obraz z ImageView w RelativeLayout
- 2. Powtórz 2-wymiarową tablicę C#
- 3. Jak zrobić Powtórz - do pętli w C++?
- 4. Powtórz LINQ kwerendy
- 5. Powtórz data.frame N razy
- 6. Powtórz nad obiektem coffeescript
- 7. Powtórz wiersze obiektu data.frame
- 8. Powtórz pędzel tła w WPF
- 9. Powtórz elementy wektora w R
- 10. Powtórz kolory OpenGL glColorPointer?
- 11. jsf powtórz wewnątrz datatable
- 12. Scala Powtórz Array
- 13. Powtórz tablicę do określonej długości?
- 14. C# Utwórz obraz gradientowy
- 15. Powtórz wewnątrz atrybutu Kątowymi
- 16. Powtórz android animacja
- 17. Powtórz kierunek kolumny w przeglądarce raportów Microsoft
- 18. Obraz ekranu przechwytywania w C++ na OSX
- 19. Sprawdzanie, czy obraz jest pusty w C#
- 20. Konwersja base64 na obraz w C#
- 21. Jak przyciąć obraz w obiektywnym c?
- 22. Sprawdź, czy obraz istnieje w C#
- 23. Powtórz nad HashMap.values () w JSF + Facelets
- 24. Powtórz klasy zdefiniowane w module importowanym dynamicznie
- 25. Powtórz listę z indeksami w języku Python
- 26. Powtórz jQuery Obiekt JSON w oryginalnej kolejności
- 27. Powtórz każdy plik w jednym katalogu
- 28. AngularJS Ng-powtórz i duplikaty
- 29. Powtórz ciąg z całkowitym mnożeniem
- 30. Obraz kolumny obrazu Datagridview - C#
Jaki rodzaj wzoru? Czy chcesz skopiować piksele? –