Tôi có hình ảnh với một mẫu nhất định. Làm cách nào để lặp lại nó trong một hình ảnh khác bằng GDI? Có phương pháp nào để thực hiện điều đó trong GDI không?Lặp lại hình ảnh trong C#
Trả lời
Trong C#, bạn có thể tạo một TextureBrush mà sẽ gạch hình ảnh của bạn bất cứ nơi nào bạn sử dụng nó, và sau đó điền vào một khu vực với nó. Một cái gì đó như thế này (ví dụ điền vào toàn bộ hình ảnh) ...
// 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);
}
Lưu ý, nếu bạn muốn kiểm soát hình ảnh được lát gạch, bạn sẽ cần tìm hiểu một chút về biến đổi.
Tôi gần như quên (thực sự tôi đã quên một chút): Bạn sẽ cần phải nhập khẩu System.Drawing
(ví Graphics
và TextureBrush
) và System.Drawing.Drawing2D
(ví WrapMode
) để các mã trên để làm việc như là.
Không có chức năng để vẽ nên một hình ảnh cụ thể như là một "mẫu" (vẽ nó lặp đi lặp lại), nhưng nó nên được khá đơn giản để làm:
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: Bạn chuyển nó hình chữ nhật trên đối tượng 'Graphics' mà bạn muốn lấp đầy bằng hình ảnh. –
- 1. nền hình ảnh Android lặp lại
- 2. CSS Sprites Lặp đi lặp lại hình ảnh
- 3. Lặp lại một phần của hình ảnh trong CSS
- 4. css với hình nền mà không lặp lại hình ảnh
- 5. Lặp lại chuỗi hình ảnh JPEG/PNG lớn
- 6. Nhận dạng hình ảnh trong hình ảnh trong C#
- 7. Lặp qua các điểm ảnh trong một hình ảnh
- 8. Tạo hình ảnh lớn trong C#
- 9. Tạo và lặp lại số trong C#
- 10. Lặp lại đối tượng JSON trong C#
- 11. Tạo mã đối tượng lặp lại C++
- 12. hình nền không lặp lại trong bố cục android
- 13. Lặp lại hình nền trong ứng dụng iPhone gốc
- 14. Hình nền HTML5 canvas lặp lại
- 15. làm cho hình ảnh (không phải nền img) trong div lặp lại?
- 16. Lặp lại trong LaTeX
- 17. C++ tạo hình ảnh
- 18. C# Generics để tránh lặp lại mã?
- 19. Java Lặp qua các pixel trong một hình ảnh?
- 20. HashSet Lặp lại trong khi xóa các mục trong C#
- 21. C# gif Hình ảnh tới MemoryStream và ngược lại (mất hoạt ảnh)
- 22. Cách sử dụng CSS sprite cho hình nền Lặp lại?
- 23. Xóa các vòng lặp và điều kiện mã hóa lặp đi lặp lại trong C#
- 24. Tạo hình ảnh nhiễu trắng trong C#
- 25. hiển thị hình ảnh trong C#
- 26. Lặp lại vector STL 2 chiều C++
- 27. AngularJS: ng-mô hình bên trong ng-lặp lại?
- 28. CSS: Chỉ có thể lặp lại một phần của hình ảnh để sử dụng làm nền?
- 29. Datagridview Hình ảnh Thiết lập Hình ảnh Cột - C#
- 30. Thao tác hình ảnh C++
Loại mẫu nào? Bạn có muốn sao chép pixel không? –