41 lines
2.0 KiB
C#
41 lines
2.0 KiB
C#
using OpenCvSharp;
|
|
using Point = System.Drawing.Point;
|
|
|
|
namespace CandyboxPlugin.Recipe
|
|
{
|
|
public static class ErrorTextHelper
|
|
{
|
|
private static Font _font = new Font(FontFamily.GenericMonospace, 8);
|
|
public static void DrawErrorText(Graphics g,Point point, EErrorReason errorReason)
|
|
{
|
|
string errorText = errorReason.ToString();
|
|
|
|
var measured=g.MeasureString(errorText, _font);
|
|
var mRect = new RectangleF(new PointF(point.X-measured.Width/2,point.Y), measured);
|
|
g.FillRectangle(Brushes.Bisque,mRect);
|
|
g.DrawRectangle(Pens.Coral,mRect.X,mRect.Y,mRect.Width,mRect.Height);
|
|
g.DrawString(errorReason.ToString(),_font,Brushes.Black,mRect.X,mRect.Y);
|
|
}
|
|
|
|
public static void DrawErrorText(Mat mat,OpenCvSharp.Point point, EErrorReason errorReason)
|
|
{
|
|
string errorText = errorReason.ToString();
|
|
Cv2.Rectangle(mat,point,new OpenCvSharp.Point(point.X+80,point.Y+20),OpaqueScalar(Scalar.Bisque),thickness:Cv2.FILLED);
|
|
Cv2.Rectangle(mat,point,new OpenCvSharp.Point(point.X+80,point.Y+20),OpaqueScalar(Scalar.Coral));
|
|
Cv2.PutText(mat,errorText,new OpenCvSharp.Point(point.X,point.Y+15),HersheyFonts.HersheySimplex,0.4,OpaqueScalar(Scalar.Black));
|
|
|
|
}
|
|
public static void DrawErrorText(Mat mat, OpenCvSharp.Point point, string errorReason)
|
|
{
|
|
string errorText = errorReason.ToString();
|
|
Cv2.Rectangle(mat, point, new OpenCvSharp.Point(point.X + 80, point.Y + 20), OpaqueScalar(Scalar.Bisque), thickness: Cv2.FILLED);
|
|
Cv2.Rectangle(mat, point, new OpenCvSharp.Point(point.X + 80, point.Y + 20), OpaqueScalar(Scalar.Coral));
|
|
Cv2.PutText(mat, errorText, new OpenCvSharp.Point(point.X, point.Y + 15), HersheyFonts.HersheySimplex, 0.4, OpaqueScalar(Scalar.Black));
|
|
|
|
}
|
|
private static Scalar OpaqueScalar(Scalar scalar)
|
|
{
|
|
return new Scalar(scalar.Val0, scalar.Val1, scalar.Val2, 255);
|
|
}
|
|
}
|
|
} |