标签: system.drawing

Make + y UP,Move Origin C#System.Drawing.Graphics

我希望原点位于我窗口的中心.


______________
|     ^      |
|     |      |
|     o----->|
|            |
|____________|

.NET希望它位于左上角.


_____________>
|            |
|            |
|            |
|            |
V____________|

点网和我正在努力相处..

有没有人知道如何在C#中使用Graphics对象?

Graphics.TranslateTransform不会这样做,因为它会使坐标翻转过来.结合这个Graphics.ScaleTransform(1,-1)并不令人满意,因为这会使文本显示为颠倒.

c# drawing system.drawing

6
推荐指数
1
解决办法
2539
查看次数

Graphics.MeasureCharacterRanges提供错误的大小计算

我正在尝试将一些文本渲染到Web窗体应用程序中的图像的特定部分.文本将由用户输入,因此我想改变字体大小以确保它适合边界框.

我的代码在我的概念验证实现上做得很好,但我现在正在尝试对付设计师的资产,这些资产更大,而且我得到了一些奇怪的结果.

我正在运行大小计算如下:

StringFormat fmt = new StringFormat();
fmt.Alignment = StringAlignment.Center;
fmt.LineAlignment = StringAlignment.Near;
fmt.FormatFlags = StringFormatFlags.NoClip;
fmt.Trimming = StringTrimming.None;

int size = __startingSize;
Font font = __fonts.GetFontBySize(size);

while (GetStringBounds(text, font, fmt).IsLargerThan(__textBoundingBox))
{
    context.Trace.Write("MyHandler.ProcessRequest",
        "Decrementing font size to " + size + ", as size is "
        + GetStringBounds(text, font, fmt).Size()
        + " and limit is " + __textBoundingBox.Size());

    size--;

    if (size < __minimumSize)
    {
        break;
    }

    font = __fonts.GetFontBySize(size);
}

context.Trace.Write("MyHandler.ProcessRequest", "Writing " + text + " in " …
Run Code Online (Sandbox Code Playgroud)

system.drawing gdi+ drawstring

6
推荐指数
1
解决办法
3630
查看次数

System.Drawing.Image.FromStream()方法中的"参数无效"异常

我在网站上使用Image.FromStream方法很难.以下代码在我的计算机上运行良好.但是当我将它上传到测试服务器时,它总是给我"参数无效"异常.

if (!afuImageFile.IsUploading && afuImageFile.HasFile)
{
    System.Drawing.Image imgFile = System.Drawing.Image.FromStream(afuImageFile.FileContent);
}
Run Code Online (Sandbox Code Playgroud)

afuImageFileAsynFileUploaderAjax工具包中的一个控件.afuImageFile.FileContent是一个HttpInputStream.我想我需要为某个文件夹添加一些权限.谁能帮我?

c# asp.net system.drawing

6
推荐指数
1
解决办法
8789
查看次数

如何使用system.drawing在c#中将居中文本绘制到jpg上

我使用以下代码将文本绘制到jpg图像上,但它需要x/y坐标精度来放置文本的位置.

var bmp = new Bitmap("C:\\testing\\Given.jpg");
var gra = Graphics.FromImage(bmp);

var text = "The Berman's";
var font = new Font("Segoe Script", 24);
var brush = Brushes.Orange;
var point = new PointF(130, 224);

gra.DrawString(text, font, brush, point);
bmp.Save("C:\\testing\\Custom.jpg");
Run Code Online (Sandbox Code Playgroud)

我如何将文本居中放在图像上?我猜这将与定义某种容器(矩形可能?),这是图像的宽度和文本的中心?不确定最佳做法是什么.

c# asp.net system.drawing imaging system.drawing.imaging

6
推荐指数
1
解决办法
3917
查看次数

计算.NET DrawingContext DrawText方法中的文本环绕

我正在开发一个项目,让我近似文本呈现为图像和文本的DHTML编辑器.使用.NET 4 DrawingContext对象的DrawText方法呈现图像.

DrawText方法将文本与字体信息以及尺寸一起使用,并计算使文本尽可能合适所需的包装,如果文本太长则在末尾放置省略号.所以,如果我有以下代码在Rectangle中绘制文本,它将缩写它:

string longText = @"A choice of five engines, although the 2-liter turbo diesel, supposedly good for 48 m.p.g. highway, is not coming to America, at least for now. A 300-horsepower supercharged gasoline engine will likely be the first offered in the United States. All models will use start-stop technology, and fuel consumption will decrease by an average of 19 percent across the A6 lineup. A 245-horsepower A6 hybrid was also unveiled, but no decision has yet …
Run Code Online (Sandbox Code Playgroud)

c# text system.drawing

6
推荐指数
1
解决办法
3896
查看次数

C#在面板上绘图

我正在制定一个日程安排并用面板代表时间段,而约会则是更多的面板.

用户可以向上和向下滚动,以便他们可以看到的范围更早或更晚.当约会在可见范围的末尾运行时,我希望有一个锯齿形,表明约会超出了可见范围.

我已经确定了发生这种情况的情况,并且我调用了一个私有函数drawZigZag(Panel p, int direction);来绘制它.日期水平展开,方向-1表示左侧的锯齿形,1表示右侧的锯齿形.

到目前为止,我还没有达到曲折,我只是在试验CreateGraphics()FillPolygon().到目前为止,我有:

    private void drawZigZag(Panel p, int direction) // 1 = right, -1 = left
    {
        Graphics g = p.CreateGraphics();

        g.FillRectangle(new SolidBrush(Color.FromArgb(0, Color.Black)), p.DisplayRectangle);

        Point[] points = new Point[4];

        points[0] = new Point(0, 0);
        points[1] = new Point(0, p.Height);
        points[2] = new Point(p.Width, p.Height);
        points[3] = new Point(p.Width, 0);

        Brush brush = new SolidBrush(Color.DarkGreen);

        g.FillPolygon(brush, points);
    }
Run Code Online (Sandbox Code Playgroud)

FillRectangle()我最初没有的第一个.我只补充说,当时FillPolygon()没有用.

基本上,它不起作用,我不知道为什么.面板是原始颜色 - 它尚未填充DarkGreen.我以前用过CreateGraphics()其他东西,我不确定为什么它在这种情况下不起作用.有任何想法吗?

编辑:对不起,我想我应该提一下:我的几个Label控件 …

c# system.drawing gdi winforms

6
推荐指数
1
解决办法
5万
查看次数

将文本添加到工具条进度条

我正在尝试将一些文本添加到工具条进度条,但到目前为止我还没有成功,这里是我在这里找到的一些代码:

private void pbPrecentage(ToolStripProgressBar pb)
{
    ProgressBar p = new ProgressBar();

    int percent = (int)(((double)(pb.Value - pb.Minimum) /
    (double)(pb.Maximum - pb.Minimum)) * 100);
    using (Graphics gr = pb.CreateGraphics())
    {
        gr.DrawString(percent.ToString() + "%",
            SystemFonts.DefaultFont,
            Brushes.Black,
            new PointF(pb.Width / 2 - (gr.MeasureString(percent.ToString() + "%",
                SystemFonts.DefaultFont).Width / 2.0F),
            pb.Height / 2 - (gr.MeasureString(percent.ToString() + "%",
                SystemFonts.DefaultFont).Height / 2.0F)));
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是Tool Strip Progress Bar没有CreateGraphics方法.所以我想知道是否有人能够成功地将文本添加到工具条进度条.

UPDATE

好吧,似乎ToolStripProgressBar有一个进度条属性,后者又有CreateGraphics方法,但现在的问题是文本值闪烁并闪烁,我该如何修复它?这是修改后的代码:

private void pbPrecentage(ToolStripProgressBar pb)
{
    int percent = (int)(((double)(pb.Value - pb.Minimum) /
    (double)(pb.Maximum …
Run Code Online (Sandbox Code Playgroud)

c# system.drawing

6
推荐指数
1
解决办法
6605
查看次数

wpf - 我可以在wpf中使用System.Drawing吗?

我将图像保存在数据库中...但如何从数据库中检索该图像..当我尝试使用system.drawing ..它显示一个错误..一些ppl说我不能在wpf中使用system.drwa ..甚至不是dll文件..

我的代码是

private void btnShow_Click(object sender, RoutedEventArgs e)
{
       DataTable dt2 =  reqBll.SelectImage().Tables[0];
       byte[] data = (byte[])dt2.Rows[0][1];
       MemoryStream strm = new MemoryStream();
       strm.Write(data, 0, data.Length);
       strm.Position = 0;
       System.Drawing.Image img = System.Drawing.Image.FromStream(strm);
       BitmapImage bi = new BitmapImage();
       bi.BeginInit();
       MemoryStream ms = new MemoryStream();
       img.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
       ms.Seek(0, SeekOrigin.Begin);
       bi.StreamSource = ms;
       bi.EndInit();
       ImgBox.Source = bi;
    }
Run Code Online (Sandbox Code Playgroud)

现在做什么?

我使用了system.drawing.dll ..现在我可以使用system.drawing.bitmap ..但是在使用它之后会在System.Drawing.Image.FromStream(strm)中显示错误;

错误: - 用户代码未处理参数异常

参数无效.

c# wpf system.drawing

6
推荐指数
1
解决办法
2万
查看次数

如何在Winforms应用程序中使标签文本可扩展

我正在寻找一种方法,使标签中的文本可以缩放,使其适合整个父容器.我能想到的一种方法是在窗口上重新调整容器大小,然后相应地增大或减小字体大小,但这会限制其可能性.

想知道是否有更好的方法,这可能更像是Winforms应用程序中的锚属性.

label system.drawing telerik winforms c#-4.0

6
推荐指数
1
解决办法
5038
查看次数

图像绘制速度

我正在开发一款游戏,但目前我正在运行基准测试.

如果有人可以帮我解决这个问题,我将不胜感激.

我正在做的是,当我点击开始按钮时,我在面板上触发绘制事件,使用以下代码:

    private void startToolStripMenuItem_Click(object sender, EventArgs e)
    {
        try
        {
            pnlArea.Invalidate();

        }
        catch (Exception)
        {
            throw;
        }
    }
Run Code Online (Sandbox Code Playgroud)

然后我在我的绘画事件中这样做:

    private void pnlArea_Paint(object sender, PaintEventArgs e)
    {
        try
        {
            stopwatch = new Stopwatch();
            // Begin timing
            stopwatch.Start();

            if (gameStatus == GameStatus.PlaceHead)
            {
                e.Graphics.DrawImage(dictHead["HeadRight"], 100, 100, 15, 15);
            }

            //e.Graphics.Clear(Color.White);

            if (gameStatus == GameStatus.GameTest)
            {
                int x = 0;
                int y = 0;
                for (int i = 0; i < 5000; i++)
                {
                    x += 15;
                    if (x > 1000) …
Run Code Online (Sandbox Code Playgroud)

c# performance system.drawing winforms

6
推荐指数
2
解决办法
1910
查看次数