【问题标题】:Creating a new image with new dimensions like height equals to width and width equals to height创建具有新尺寸的新图像,例如高度等于宽度和宽度等于高度
【发布时间】:2010-11-08 23:46:25
【问题描述】:

我在旋转图像时遇到问题。我想创建一个高度等于宽度的新图像,因为旋转了 90 度。但是新图像创建了改变尺寸但没有准确地将数据放入图像中。

CGImageRef imageRef = OriginalImage.CGImage; ////////////新的高度等于原始图像的宽度 size_t newHeight = CGImageGetWidth(imageRef); size_t newWidth = CGImageGetHeight(imageRef); size_t bitsPerComponent = CGImageGetBitsPerComponent(imageRef); size_t bitsPerPixel = CGImageGetBitsPerPixel(imageRef);

CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();
CGBitmapInfo bitmapInfo = CGImageGetBitmapInfo(imageRef);
CFDataRef argbData = CFDataCreate(NULL,rotatedPixelData,originalImageDataLength);
CGDataProviderRef provider = CGDataProviderCreateWithCFData(argbData);

CGImageRef nimage = CGImageCreate(NewWidth,NewHeight,bitsPerComponent, bitsPerPixel,bytesPerRow,colorspace,bitmapInfo,provider, NULL, true, kCGRenderingIntentDefault);

CGImageCreate 的参数我应该改变什么?

【问题讨论】:

    标签: iphone


    【解决方案1】:

    您可能需要计算一个newBytesPerRow

    这意味着新图像的大小可能不一样
    和原来一样,所以也要重新计算originalImageDataLength

    【讨论】:

      猜你喜欢
      • 2014-07-06
      • 2014-11-11
      • 1970-01-01
      • 1970-01-01
      • 2020-06-11
      • 1970-01-01
      • 1970-01-01
      • 2017-04-24
      • 1970-01-01
      相关资源
      最近更新 更多