問題描述
我相信這很容易,但似乎找不到任何有答案的人.我有一個圖像,我需要從該圖像中剪出一個圓形甚至其他形狀.我需要將此代碼放在 .net c# 中.我在課堂上這樣做,所以它不是 wpf 或 winform.我需要傳遞 x 和 y pos 以及圓的大小.
I am sure its easy but can't seem to find anyone that has the answer. I have an image and I need to cut a circle or even other shapes out of that image. I need this code to be in .net c#. I am doing this in a class so its not wpf or a winform. I will need to pass x and y pos and the size of the circle.
其他選項是 AForge、ImageStatistics.我需要得到一個圓圈(圖像的一部分)并得到 StdDev.
Other option is AForge, ImageStatistics. I need to get a circle (part of the image) and get StdDev.
感謝您的幫助.安德魯
-- 更新到克里斯的帖子.
-- update to chris post.
這是克里斯在 c# 中的帖子.不像他的那么干凈,但這是一個開始.
Here is chris post in c#. Not as clean as his but its a start.
public System.Drawing.Image x(string sourceFile, int circleUpperLeftX, int circleUpperLeftY, int circleDiameter)
{
Bitmap SourceImage = new Bitmap(System.Drawing.Image.FromFile(sourceFile));
Rectangle CropRect = new Rectangle(circleUpperLeftX, circleUpperLeftY, circleDiameter, circleDiameter);
Bitmap CroppedImage = SourceImage.Clone(CropRect, SourceImage.PixelFormat);
TextureBrush TB = new TextureBrush(CroppedImage);
Bitmap FinalImage = new Bitmap(circleDiameter, circleDiameter);
Graphics G = Graphics.FromImage(FinalImage);
G.FillEllipse(TB, 0, 0, circleDiameter, circleDiameter);
return FinalImage;
}
推薦答案
您可以使用 紋理刷.下面的代碼將圖像裁剪為正方形,然后將其加載到紋理畫筆中,最后使用該畫筆繪制橢圓/圓:
You can use a TextureBrush. The code below crops the image to a square, then loads that into a texture brush and finally draws an ellipse/circle using that brush:
Private Shared Function CropImageToCircle(ByVal sourceFile As String, ByVal circleUpperLeftX As Integer, ByVal circleUpperLeftY As Integer, ByVal circleDiameter As Integer) As Image
''//Load our source image
Using SourceImage As New Bitmap(Image.FromFile(sourceFile))
''//Create a rectangle that crops a square of our image
Dim CropRect As New Rectangle(circleUpperLeftX, circleUpperLeftY, circleDiameter, circleDiameter)
''//Crop the image to that square
Using CroppedImage = SourceImage.Clone(CropRect, SourceImage.PixelFormat)
''//Create a texturebrush to draw our circle with
Using TB As New TextureBrush(CroppedImage)
''//Create our output image
Dim FinalImage As New Bitmap(circleDiameter, circleDiameter)
''//Create a graphics object to draw with
Using G = Graphics.FromImage(FinalImage)
''//Draw our cropped image onto the output image as an ellipse with the same width/height (circle)
G.FillEllipse(TB, 0, 0, circleDiameter, circleDiameter)
Return FinalImage
End Using
End Using
End Using
End Using
End Function
這篇關于圖像或位圖中的 C# 麥田圈的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!