2012-07-19 35 views
5

Tôi muốn có khả năng bóp méo hình ảnh một cách có lập trình trong C#. Cụ thể, tôi muốn cân nhắc lại một hình ảnh không gian, sao cho các pixel trung tâm được mở rộng và các pixel ngoại vi chiếm không gian ít hơn tương ứng. Hãy nghĩ đến ống kính mắt cá. Kinda.Có bất kỳ công cụ .NET nào để bóp méo/cong vênh hình ảnh không?

Có bất kỳ công cụ .NET nào có thể thực hiện việc này không? Tôi không quan tâm cho dù họ đang xây dựng vào lõi .NET, hoặc một addon.

Trả lời

1

Disclaimer: Tôi làm việc cho Atalasoft

hình ảnh miễn phí của chúng tôi SDK DotImage ảnh miễn phí, có thể làm điều này:

http://www.atalasoft.com/free-dotnet-image-sdk

Nhìn vào Atalasoft.Imaging.ImageProcessing.Transforms.LensTransform. Bạn sẽ làm một cái gì đó như

AtalaImage img = new AtalaImage("file.jpg"); 
LensTransform cmd = new LensTransform(); 
cmd.Radius = 100; 
cmd.Offset = new Point(100, 100); // set the center 
AtalaImage img2 = cmd.Apply(img).Image; 
1

Hmm ... bạn có thể thử sử dụng API của ImageMagick để thực hiện bất kỳ thao tác nào bạn cần.

http://www.imagemagick.org/script/api.php

Chúng có hai giải pháp .NET. Bạn sẽ có thể điều tra và tìm một cái phù hợp nhất với nhu cầu của bạn. Một trong các tính năng của chúng bao gồm méo ảnh tổng quát, mà bạn có thể sử dụng để phù hợp với nhu cầu của mình.

1

Bạn có thể đạt được hiệu ứng như vậy khá dễ dàng với hiệu ứng đổ bóng WPF.

Nếu bạn chưa từng nghe về chúng, ý tưởng là bạn có thể chạy hiệu ứng đổ bóng pixel Direct3D trên bất kỳ hình ảnh nào. Điều này sẽ làm cho nó rất dễ dàng để làm các hiệu ứng như bạn mô tả tại framerates thời gian thực.

Bằng nhiều cách dễ hơn viết chúng bằng C# hoặc C, vì bạn không cần phải lo lắng về việc tô màu các mẫu màu trong bộ đệm ảnh, kiểm tra phạm vi và lặp lại chính xác dữ liệu của bạn như tất cả điều này được xử lý bởi phần cứng thẻ video.

Here's a link với video channel9 hiển thị các hiệu ứng mẫu trong thư viện mẫu wpffx.

Tôi nghĩ rằng "độ phóng đại mịn" rất gần với những gì bạn muốn.

Các vấn đề liên quan