【问题标题】:Shape transformation using Quartz (iOS)使用 Quartz (iOS) 进行形状转换
【发布时间】:2011-07-07 09:08:25
【问题描述】:

我必须编写一个应该在平面上显示形状的绘图工具。这些形状可以是任意形状,如椭圆或立方体,也可以是在平面上绘制的一些图片。

我需要做的是,使用位于这些形状周围的标记点,能够通过移动标记来转换它们。因此,例如假设我在顶部、底部、左侧和右侧有四个标记,我应该能够通过移动左右标记来水平拉伸形状。

我不能使用形状的几何属性(例如更改椭圆的半径),因为我必须能够对任意形状(如图片)执行此操作。

我在图像处理算法方面没有太多经验,谁能给我一些从哪里开始的提示?最终最好的做法是做得好,甚至是一个好的算法来做到这一点?

我正在为 iOS 平台开发。

【问题讨论】:

    标签: ios objective-c image-manipulation quartz-graphics


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      这是在 UIImage 上绘制的方法

      UIGraphicsBeginImageContext(CGSizeMake(width, height)); 
      // do your drawing operations
      UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
      UIGraphicsEndImageContext();
      

      这是缩放图像的方法

      UIGraphicsBeginImageContext(CGSizeMake(scaledWidth, scaledHeight)); 
      [image drawInRect:CGRectMake(0,0, scaledWidth, scaledHeight)];
      UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext(); 
      UIGraphicsEndImageContext();
      

      您不必分两步完成 - 您可以按比例绘制每个项目。这对于非图像绘制会更好。

      如果你需要一个CGContextRef来绘制,你可以使用这个

      CGContextRef context = [[NSGraphicsContext currentContext] graphicsPort];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-14
        • 1970-01-01
        • 2015-02-21
        相关资源
        最近更新 更多