绘制到 UIImage 中

2024-03-30

如何使用 monotouch 绘制现有的 UIImage?

我加载图像: UIImage.FromFile("MyImage.png")

然后我想在这个图像中绘制一条字符串和一些线条。

有人有代码示例吗?

Thx


这是一个执行此操作的方法:

private void drawOnTouch(object data)
{

    UITouch touch = data as UITouch;

    if (null != touch)
    {

        UIGraphics.BeginImageContext(this.Image == null ? this.Frame.Size : this.Image.Size);

        using (CGContext cont = UIGraphics.GetCurrentContext())
        {

            if (this.Image != null)
            {

                cont.TranslateCTM(0f, this.Image.Size.Height);
                cont.ScaleCTM(1.0f, -1.0f);
                cont.DrawImage(new RectangleF(0f,0f,this.Image.Size.Width, this.Image.Size.Height), this.Image.CGImage);
                cont.ScaleCTM(1.0f, -1.0f);
                cont.TranslateCTM(0f, -this.Image.Size.Height);


            } //end if

            PointF lastLocation = touch.PreviousLocationInView(this);
            PointF pt = touch.LocationInView(this);
            using (CGPath path = new CGPath())
            {

                cont.SetLineCap(CGLineCap.Round);
                cont.SetLineWidth(3);
                cont.SetRGBStrokeColor(0, 2, 3, 1);
                path.MoveToPoint(lastLocation.X, lastLocation.Y);
                path.AddLines(new PointF[] { new PointF(lastLocation.X, 
                                lastLocation.Y),
                            new PointF(pt.X, pt.Y) });
                path.CloseSubpath();

                cont.AddPath(path);
                cont.DrawPath(CGPathDrawingMode.FillStroke);
                this.Image = UIGraphics.GetImageFromCurrentImageContext();

            }//end using path


        }//end using cont
        UIGraphics.EndImageContext();
        this.SetNeedsDisplay();

    }//end if


}//end void drawOnTouch

如果将此方法放在 UIImageView 的子类中并从 TouchesBegan 和 TouchesMoved 调用它,当您触摸屏幕时,它将在图像上绘制。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

绘制到 UIImage 中 的相关文章

  • 为什么 Visual Studio (Xamarin) 中的 Android 资源文件不允许有重音符号?

    我有一个 Visual Studio Xamarin Android 项目 其文件名称中包含重音字符 di rio png 该文件位于 Assets 文件夹中 并标记为 Android Asset 不幸的是 当我构建项目时 出现编译错误 C
  • 带旋转器的时间选择器?

    我正在尝试构建一个 TimePickerDialog 但不幸的是出现的时间选择器使用起来非常麻烦 有什么方法可以构建一个像 Android 使用的旧时间选择器一样的时间选择器 如下所示 我的代码如下 ButtonTime Click del
  • 修剪 UIImage 边框

    这是我想要修剪的图像的示例 我想去掉图像周围的边框 在本例中是顶部和底部的黑条 我在Github上找到了一个库 CKImageAdditions https github com cmkilger CKImageAdditions 但是它似
  • sqlite.net + monotouch = SIGSEGV 崩溃

    我们正在使用以下内容 Xamarin 3 Xamarin 表单 单点触控 sqlite net iOS模拟器 硬件 该应用程序在后台线程上与服务器同步数据 整个应用程序只共享一个 SQLite 连接对象 前台查询在后台同步运行的同时执行 所
  • Xamarin Forms:System.Reflection.TargetInitationException:调用目标已引发异常

    我正在为这个问题苦苦挣扎 我只是创建了一个简单的跨平台页面 这里是 XAML 代码
  • 在 Mono 上使用 Mono for android

    将 MonoDevelop 的编译器切换为 Mono 工具而不是 NET 看起来非常容易 您只需在 IDE 的设置下选择不同的框架即可 然而 在切换到 Mono 并使用 Mono 工具编译项目后 Mono for android 似乎不再是
  • Xamarin、Autofac、NavigationService 和 BeginLifetimeScope

    关于带有 autofac 的生命周期范围以及何时在 xamarin 应用程序中使用它们的初学者问题 正如这篇文章中提到的 https nblumhardt com 2011 01 an autofac lifetime primer htt
  • 如何获取 UIImage 的大小(以 KB 为单位)?

    有没有办法从 UIImage 获取以 KB 为单位的文件大小 而不从 didFinishPickingMediaWithInfo 获取该图像 所呈现的图像来自相册 我尝试了以下代码 但这给出了以下结果 图像大小 KB 0 000000 vo
  • 不同形状的图像拼贴

    我对照片编辑应用程序开发完全陌生 我如何开发这样的网格样式 以便我可以添加从相机胶卷中选取的多个图像来创建拼贴画 我浏览了下面的链接 但没有找到实现这一目标的方法 任何建议或链接都 会有帮助 LINK1 https stackoverflo
  • 预览 Xamarin 表单页面

    有没有办法在不先部署到设备 模拟器的情况下预览 Xamarin 表单页面 或者有什么方法可以实时编辑页面并查看某处的更改 有点像 WPF 的史努比 我尝试了 Xamarin Studio Visual Studio 但没有看到设计器 201
  • Xamarin.Forms:如何访问 ListView.GroupHeaderTemplate 中 ListView.ItemTemplate 中使用的集合?

    我需要访问 ListView GroupHeaderTemplate 中 Switch 中的 OnOff 属性 该属性位于 ListView ItemTemplate 使用的集合中 我尝试了很多方法但没有成功 有人遇到过这个问题吗 gt
  • 使用 SQLite.Net.Async 的 Xamarin.Forms

    我已按照此处的说明进行操作http developer xamarin com guides cross platform xamarin forms working with databases http developer xamari
  • 在 MonoDroid 中设置 textview 的文本时,“jobject”不能为 IntPtr.Zero

    我将 MvvmCross 与 MonoDroid 一起使用 在视图模型中的计时器中 我每分钟调用RaisePropertyChanged MinutesRemaining MinutesRemaining是一个整数 指定当前条目结束之前的持
  • Xamarin-ios 共享和接收音频文件

    如何将我的应用程序中的音频文件共享给其他应用程序并从其他应用程序接收音频文件 I would like a functionality like this 我无法附加音频文件 这是代码片段 var fileData NSUrl FromFi
  • 我怎样才能设置在中间呢?

    我尝试用Java画一个矩形 我设置了框架大小 800 400 和可调整大小 假 矩形的x 50 y 50宽度 700高度 300 为什么它不在中间 谢谢 如果没有任何其他证据 我会guess你已经覆盖了paint类似的方法JFrame并直接
  • 无法部署到真实的 Android 设备 Xamarin

    我的问题与这篇文章有关即使应用程序似乎未安装 也会失败 INSTALL FAILED UPDATE INCOMPATIBLE https stackoverflow com questions 26794862 failure instal
  • 我可以以编程方式更改 Xamarin.Forms 中的 styles.xml 吗?

    我们有一个可自定义颜色的应用程序 这使得列表视图中所选项目的橙色 Android 默认值有时看起来很糟糕 我们想要更改列表视图所选项目的颜色 我知道如何在我们页面的后台代码 xaml cs 中执行此操作 并且我知道您可以在 styles x
  • System.Net.Http.HttpClient 不尊重超时并每次使用默认值

    我正在使用 HttpClient 与具有大量 api 的 Web 服务 由我的公司编写 进行交互 所有 api 都工作得很好 除非其中一个 较大且较慢的 需要超过 100 秒才能给出答案 过了那个时间我收到以下错误 注意 如果 api 花费
  • Libgdx SpriteBatch.draw() 指定 4 个顶点

    我正在使用 libGdx 创建一个 2d 游戏 并尝试使用这个特殊的方法来绘制一个简单的 2d 纹理 分别指定 4 个顶点 draw Texture texture float spriteVertices int offset int l
  • Xamarin.forms 长时间运行的后台工作

    我是 Xamarin 平台的新手 我正在使用 Xamarin forms 为所有三个主要平台 WP iOS Android 开发应用程序 如何在后台与我的服务器同步数据 gt 我需要类似于 Android Service 的东西 即使用户转

随机推荐