当前位置: 首页 > 知识库问答 >
问题:

如何确定CGImage每像素的分量数?

吕翰飞
2023-03-14

对于物理缩放任何UIImage的方法,我需要创建位图上下文,除了目标宽度和高度之外,它与图像具有完全相同的设置。

这是我目前的代码。缺少什么:如何为CGBitmapContextCreate的bytesPerRow参数确定CGImage每像素的组件数?

CGImageRef cgImage = self.CGImage;
size_t widthPX = CGImageGetWidth(cgImage);
size_t heightPX = CGImageGetHeight(cgImage);
size_t bitsPerComponent = CGImageGetBitsPerComponent(cgImage);
size_t bitsPerPixel = CGImageGetBitsPerPixel(cgImage);
size_t bytesPerRow = CGImageGetBytesPerRow(cgImage);
CGColorSpaceRef colorSpace = CGImageGetColorSpace(cgImage);
CGColorSpaceModel colorSpaceModel = CGColorSpaceGetModel(colorSpace);
CGBitmapInfo bitmapInfo = CGImageGetBitmapInfo(cgImage);

CGContextRef ctx=CGBitmapContextCreat(NULL,德宽,德高,bitsPerComponent, bytesPerRow /wrong!!它是为源宽!/,色彩空间, bitmapInfo);

共有1个答案

葛越泽
2023-03-14

这是我的粗略解决方案。我还不确定它是否有效。

size_t bytesPerRow = CGImageGetBytesPerRow(cgImage);
size_t bytesPerPixel = bytesPerRow / widthPX;
size_t destBytesPerRow = bytesPerPixel * destWidth;

我试图做的是:首先,根据每行字节数和源图像中的像素数计算每像素字节数。然后将其与目标宽度相乘,得到每行目标图像的字节数。

 类似资料:
  • 在Apache Spark中, -允许将RDD精确划分为分区。 而是如何将给定的RDD划分成分区,使得所有分区(最后一个分区除外)都具有指定数量的元素。鉴于RDD元素的数量是未知的,做<代码>。count()的开销很大。 预期:

  • 我需要从一个Hive表中读取数据并将其插入到另一个Hive表中。两个表的架构是相同的。该表按日期分区 步骤1:从Spark的源表中读取数据。 第 2 步:按列(国家、日期)和分区数重新分区为 4。 我只得到每个国家代码1个分区

  • 问题内容: 我如何查看变量的类型(无符号32位,带符号16位等)? 问题答案: 与的类型不同,这似乎是你的问题。 尝试这个: 不过,在Python 3.0中int和long之间的区别消失了。

  • 我正在使用Xamarin和MVVMCross开发一个应用程序,在创建绑定NSLayoutConstraints常量时遇到问题。 我有一个带有子视图的视图,如果某个列表 为此,我向该视图添加了一个NSLayoutConstraint,以便能够以编程方式修改其高度,并使用以下代码行对其进行绑定: CountToConstraintHeightConverter非常简单,它只检查值是否等于0以返回0或默

  • 我正在编写一个以整数为输入的程序,并输出一条消息,不管输入的整数是否是素数。我使用的算法如下...要求: n 如果有人能帮忙,我将不胜感激,谢谢!

  • 我正在使用卷积神经网络(无监督特征学习检测特征Softmax回归分类器)进行图像分类。我已经阅读了Andrew NG在这方面的所有教程。(http://ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial)。 我开发的网络有一个: 输入层-大小8x8(64个神经元) 隐藏层-大小为400个神经元 输出层-大小3 我已经学习了使用稀疏自动编码器将输入层连接