MonoTouch:FinishedLaunching中的CIContext似乎崩溃应用程序?

时间:2012-08-04 17:55:43

标签: c# ios mono xamarin.ios core-image

我在FinishedLaunching()中更改图像的色调,这是我使用外观设置的一部分。当我尝试获取CIContext时,该应用程序将崩溃而没有任何崩溃信息。

以下是代码:

        var hueAdjust = new CIHueAdjust() {
            Image = CIImage.FromCGImage(originalImage.CGImage),
            Angle = hue * (float)Math.PI / 180f // angles to radians
        };

        var output = hueAdjust.OutputImage;

        UIImage retVal = null;

        UIGraphics.BeginImageContextWithOptions(originalImage.Size, false, 0);
        using (var c = UIGraphics.GetCurrentContext ())
        {
            //****This next line causes the crash*******
            var context = CIContext.FromContext(c);
            var cgimage = context.CreateCGImage(output, output.Extent);
            retVal = UIImage.FromImage(cgimage);
        }
        UIGraphics.EndImageContext();

        return retVal;

我已经测试过在应用生命周期的不同时间设置此功能,但它似乎总是立即降低。

2 个答案:

答案 0 :(得分:1)

感谢您填写bug report。崩溃是由于FromContext中无休止的递归造成的。但是,这不会解决您的original problem,因为iOS中不存在公开的API(特定于OSX)。

答案 1 :(得分:0)

不知道我是否理解你要做的事情,但这里有一些代码可以改变图像的色调: https://stackoverflow.com/a/11762982/1560797

我猜你使用的方法是Monotouch中的一个错误。我自己在一个演示应用程序中尝试过它,它会在我的设备上生成崩溃报告。 (我对阅读崩溃日志并不熟悉,所以不知道到底发生了什么) 请在xamarin报告