如何改变objective-c中的图像分辨率

2023-11-23

我需要更改 Objective-C 中现有图像的分辨率,就像 Apple 的预览应用程序工具->调整大小...->分辨率一样。

请让我知道可能的解决方案。


这是我用过的一个很棒的示例 -http://weblog.scifihifi.com/2005/06/25/how-to-resize-an-nsimage/

从该示例中,您可以将 resizedData 写入文件 - 这将是 tiff 格式的调整大小输出。

UPDATE:

这里是 NSImage 类别的实现,它允许使用指定的 DPI 保存 NSI​​mage 实例:

@interface NSImage (DPIHelper)
- (void) saveAsImageType: (NSBitmapImageFileType) imageType withDPI: (CGFloat) dpiValue atPath: (NSString *) filePath;
@end

@implementation NSImage (DPIHelper)


- (void) saveAsImageType: (NSBitmapImageFileType) imageType withDPI: (CGFloat) dpiValue atPath: (NSString *) filePath
{
  NSBitmapImageRep *rep = [[self representations] objectAtIndex: 0];

  NSSize pointsSize = rep.size;
  NSSize pixelSize = NSMakeSize(rep.pixelsWide, rep.pixelsHigh);

  CGFloat currentDPI = ceilf((72.0f * pixelSize.width)/pointsSize.width);
  NSLog(@"current DPI %f", currentDPI);

  NSSize updatedPointsSize = pointsSize;

  updatedPointsSize.width = ceilf((72.0f * pixelSize.width)/dpiValue);
  updatedPointsSize.height = ceilf((72.0f * pixelSize.height)/dpiValue);

  [rep setSize:updatedPointsSize];

  NSData *data = [rep representationUsingType: imageType properties: nil];
  [data writeToFile: filePath atomically: NO];

}

@end

你可以这样使用它:

NSImage *theImage2 = [NSImage imageNamed:@"image.jpg"];
[theImage2 saveAsImageType:NSJPEGFileType withDPI: 36.0f atPath: @"/Users/<user-name>/image-updated.jpg"];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何改变objective-c中的图像分辨率 的相关文章

  • 如何在 Objective-C 标头中引用 Swift 枚举

    有没有办法从 Objective C 标头引用 Swift 枚举 如果你想在 Objective C 头中查看 Swift 类 你可以使用 objc class Foo 我没有看到枚举有任何类似的东西 你想做的事情叫做forward dec
  • NSDate 休息 5 小时

    我运行以下代码 NSDate now NSDate 日期 NSLog now now 并得到 2011 09 16 16 14 16 434 iSavemore 1229 7907 现在 2011 09 16 21 14 16 0000 如
  • 如何在iOS应用程序中实现信号量?

    是否可以在ios应用程序中实现计数信号量 对的 这是可能的 有很多可用的同步工具 同步 NSLock NS条件 NS条件锁 GCD 信号量 并行线程锁 我建议阅读 线程编程指南 http developer apple com librar
  • WebView 不运行 loadHTMLString 中给出的 JavaScript

    我不明白为什么这不起作用 我的桌面上有一个 test htm 文件 如下所示 This is x 2 我有一个 WebVie
  • 在 Cocoa/Carbon 下调试 NULL CGContext

    在执行程序期间 我在 XCode 调试控制台中得到以下输出
  • 如何将 JPG 文件加载到 NSBitmapImageRep 中?

    Objective C 可可 我需要将 JPG 文件中的图像加载到二维数组中 以便可以访问每个像素 我正在尝试 未成功 将图像加载到 NSBitmapImageRep 中 我尝试了以下两行代码的几种变体 NSString filePath
  • Xcode 4 Core Data:如何使用在数据模型编辑器中创建的获取属性

    如何在 Xcode 4 中实现获取的属性 Here is an example of two entities a book and a page 我按照此处的指南创建了一个获取的属性 该属性使用变量 FETCH SOURCE 引用来自源实
  • 从 iPhone 设备查找当前国家/地区

    我必须在 iPhone 设置中获取当前国家 地区 谁能告诉我如何在 iPhone 应用程序中获取当前国家 地区 我必须使用当前国家 地区来解析需要传递当前国家 地区的 RSS 提要 请帮我找到那个国家 提前致谢 要查找用户选择的语言所在的国
  • 使用 Python-AppKit-Objective C 转换为预组合 Unicode 字符串

    苹果公司的这份文件技术问答 QA1235 http developer apple com qa qa2001 qa1235 html描述了一种将 unicode 字符串从组合版本转换为分解版本的方法 由于我对包含某些字符 例如重音符号 的
  • 子视图的子层与更高的子视图重叠

    我有一个问题 我正在创建一个UIView这是从方法返回的 这部分很好 但我注意到 当我将子层添加到其中一个子视图时 这些层与子层添加的层次结构中较高的子视图 textView 和 imageView 重叠到testViewCopy出现在这些
  • 永远不会在 ios 的 google API 中获取上传数据进度

    我在我的应用程序中使用 Google Drive API 从我的应用程序上传文件 到目前为止 我成功了 并找到了上传所有类型文件的良好结果 我跟着谷歌示例 https developers google com drive examples
  • 每个 CPU 核心处于 C0 电源状态的时间

    任何帮助弄清楚如何做到这一点都会很棒 在过去一秒内 每个 CPU 核心处于 C0 电源状态的时间有多少 这是针对 Mac 应用程序的 因此需要 Objective C cocoa 和 c OS X 没有任何公开 CPU c 状态的 API
  • Xcode 6.4 Swift 单元测试无法编译:“GPUImage.h 未找到”“无法导入桥接标头”

    我的 Xcode 项目构建并运行良好 它有 Swift 和 Objective C 代码 它已安装 GPUImage 我向它添加了单元测试 现在它将不再编译 找不到 GPUImage h 文件 导入桥接标头失败 以下是我发现并尝试过的解决方
  • 使用 Swift 创建 NSAlert

    我有在 Objective C 中创建和 NSAlert 的代码 但我现在想在 Swift 中创建它 该警报旨在确认用户想要删除文档 我想要 删除 按钮来运行删除功能 而 取消 按钮只是为了消除警报 我怎样才能用 Swift 写这个 NSA
  • xcode“将源编译为”覆盖特定文件

    我有一个项目 必须将 编译源为 值设置为 Objective C 不 根据文件类型 在我的主项目中不起作用 我从框架 特别是 OpenFeint 获得的文件有问题 该文件在编译为 Objective C 时出现编译错误 error poin
  • 如何从 UILabel 创建图像?

    我目前正在 iPhone 上开发一个简单的类似 Photoshop 的应用程序 当我想要展平图层时 标签位于良好的位置 但字体大小不佳 这是我要展平的代码 UIGraphicsBeginImageContext CGSizeMake wid
  • 为什么在 10.5 上我必须在 NSWindowController 上调用 showWindow 两次?

    我有一个 NSWindowController 的子类 我用它从笔尖加载窗口并将其显示在屏幕上 下面是当我想显示窗口时调用的代码 在 10 6 上 当调用 showCustomWindow 时 会显示窗口 但在 10 5 上 必须调用此方法
  • Objective-C 使用字符串池吗?

    我知道Java https stackoverflow com questions 3801343 what is string pool in java and C http msdn microsoft com en us librar
  • 禁用 iPhone 4S / 新 iPad 键盘上的听写按钮

    我们的应用程序是一个医疗保健应用程序 我们的应用程序中有一个符合 HIPAA 标准的语音识别器 所有听写都可以通过它进行 医院不希望医生意外开始与不符合 HIPAA 标准的 Nuance Dragon 服务器进行对话 因此 我正在寻找可以抑
  • 有没有办法拉伸整个显示图像以适应给定的分辨率?

    我最近一直在使用pygame制作游戏 遇到了一个小问题 基本上 我希望能够将屏幕上的整个图像 我已经传输到它的所有内容 拉伸到用户将窗口大小调整到的分辨率 我在 pygame 和堆栈溢出的文档中搜索了很多 但我似乎找不到答案 这可能吗 我的

随机推荐

  • 为什么 Java 会产生这么多进程?

    我编写了一个 Java 服务器应用程序 在Debian 7 虚拟服务器 该应用程序本身工作得很好 但我注意到一些非常奇怪的事情 Issue 打电话后java Xmx200M jar CCU jar我希望看到一个 Java 进程运行我的CCU
  • richfaces suggestBox 将附加值传递给支持 bean

    使用 RichFaces 时suggestionBox如何从带有文本输入的页面传递多个 id 或值suggestionBox支持豆 即 显示所选州内的建议城市列表 这是我的autoComplete method public List lt
  • pandas groupby 计算列中零的数量

    我有一个数据框 例如 Date B C 20 07 2018 10 8 20 07 2018 1 0 21 07 2018 0 1 21 07 2018 1 0 如何计算每个日期每列的零值和非零值 使用 sum 对我没有帮助 因为它会将非零
  • 从Python中的基类继承namedtuple

    是否有可能生产一个namedtuple哪个继承自基类 我想要的是Circle and Rectangle are namedtuples 和 都是从公共基类 Shape 继承的 from collections import namedtu
  • 如何将实体框架添加到控制台应用程序(包含图像)

    I try to add entity framework to console application I press add new item and then then 然后我添加了代码 class Program static vo
  • Chrome 不支持 Service Worker (69.0.3497.81)

    我开始使用 PWA 渐进式网络应用程序 当我尝试检查 Chrome 浏览器是否支持 Service Worker 时 它总是返回 false 下面的代码我用于检查 Note 我使用的是 chrome 版本 69 0 3497 81 官方版本
  • 如何使用 python nltk 获取解析树?

    给出以下句子 The old oak tree from India fell down 如何使用 python NLTK 获得句子的以下解析树表示 ROOT S NP NP DT The JJ old NN oak NN tree PP
  • char four[4] = "四";该语句的正确语义是什么?

    int main void char four 4 four return 0 当编译为 C 程序时 G 会报告 xxx cpp 在函数 int main 中 xxx cpp 3 错误 字符数组的初始化字符串太长 编译 C 程序时 GCC
  • 如何在网页上制作pandas操作的进度条

    我已经在谷歌上搜索了一段时间 但无法找到一种方法来做到这一点 我有一个简单的 Flask 应用程序 它接受 CSV 文件 将其读入 Pandas 数据帧 将其转换并输出为新的 CSV 文件 我已经成功上传并使用 HTML 转换它 div c
  • 另一个围栏代码块内的围栏代码块

    我正在尝试写有关 Markdown 语法的文章 并且为了编写它 我使用 Markdown 所以 我的文档如下所示 Example of markdown code foo fenced code block fail bar lalala
  • AppFabric 缓存 - 我可以指定用于所有对象的序列化样式吗?

    实现某些自定义序列化的对象可以序列化和反序列化为不同的格式 例如 Xml 或 byte 我遇到了一个问题 当我放入缓存时 AppFabric 在类上运行 IXmlSerialized 实现 而我宁愿强制它使用二进制文件 AppFabric
  • 如何使用 adb 卸载所有 3rd 方用户应用程序?

    我正在尝试创建一个脚本 该脚本将通过以下方式在一次批量操作中检索和卸载所有用户应用程序adb 有谁知道我怎样才能做到这一点 我目前可以通过以下方式列出所有 3rd 方应用程序 adb shell pm list packages 3 我可以
  • 我如何知道图片何时加载到 Picturebox 中

    我有一些巨大的图像 7000 5000 要在我的程序中同时加载 我将它们一张一张地显示在图片框中 这些图像需要一些时间才能加载到图片框 首先 我将所有图像加载到Image数组为Bitmap 然后我只显示图片框中的第一张图像picturebo
  • Numpy:条件和

    我有以下 numpy 数组 import numpy as np arr np array 1 2 3 4 2000 5 6 7 8 2000 9 0 1 2 2001 3 4 5 6 2001 7 8 9 0 2002 1 2 3 4 2
  • 平方根函数是如何实现的? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 平方根函数是如何实现的 简单的实现使用二分查找用C double root double n Max and min are used to take into account
  • 如何在 selenium 自动化中更改 chrome 浏览器语言

    我想自动化 Web 应用程序的本地化功能 根据我的应用程序 当浏览器语言更改时 应用程序语言应该根据浏览器语言自动更改 怎么做 在启动驱动程序之前 在 chrome 选项中设置语言代码 如下所示 System setProperty web
  • Eclipse 无法编译,类文件错误,版本错误

    我正在尝试编译从另一个开发人员处签出的 SVN 代码 Eclipse 最近给我带来了很多麻烦 Here are my project specific settings 这是我的 ant 文件的编译部分
  • 哪个编译器(如果有)在参数包扩展中存在错误?

    在尝试以容器形式访问元组的便捷方法时 我编写了一个测试程序 在 clang 3 9 1 和 apple clang 上 它按预期进行编译 产生预期的输出 1 1 foo 2 在 gcc 5 4 6 3 上 无法编译
  • 如何在 Chrome 扩展程序中使用 Google API?

    我现在正在花几个小时搜索如何在 Chrome 扩展中使用 Google API 我想做的就是解析网站的内容并将其作为新事件插入到 Google 日历中 我得到了解析和一切 但似乎不可能在 Chrome 扩展中使用 Google API 我只
  • 如何改变objective-c中的图像分辨率

    我需要更改 Objective C 中现有图像的分辨率 就像 Apple 的预览应用程序工具 gt 调整大小 gt 分辨率一样 请让我知道可能的解决方案 这是我用过的一个很棒的示例 http weblog scifihifi com 200