使用 Data(不是 NSData),实际上如何制作 utf8 版本的 jpeg?

2023-12-11

正如这里所解释的,https://stackoverflow.com/a/30624755/294884

[认为]图像的 JPEG 表示是 UTF-8 编码的字符串是错误的。它不是。它是任意二进制数据。 UTF-8 字符串不是任意的字节序列;关于哪些字节可以跟随其他字节有一些规则。

事实上,如何do你最好从图像中创建一个utf8数据,在Data era?

日常用例采用 http 形式。

我做这样的事情,

    formData.append( "Content-Disposition etc".(using: .utf8)! )
    formData.append( "Content type etc".(using: .utf8)! )

    // now let's add a #@@%$%$% image

    let trueBinary = UIImageJPEGRepresentation(i, 0.10)!
    print("the size seems to be \(trueBinary.count)")
    
    let mystere = trueBinary.base64EncodedString(
                  options: .lineLength76Characters)
    
    formData.append( mystere.data(using: .utf8)! )

But

A,这看起来很棘手,而且可能无论如何也不起作用。

B,“lineLength”概念对我来说没有任何意义,所以我只是猜测一些东西,然后在其中输入一些内容。

请注意,令人难以置信的是,如果您有Datax 并添加一些字符串作为 utf 8 使用append.....然后添加一个“真正的”二进制数据,例如 jpeg 表示形式x ...... 事实上它为零“x”——哎呀!(它不只是“不添加二进制”,它把 x 刮得一文不值。)


这条线有问题:

let mystere = trueBinary.count.base64EncodedString(
              options: .lineLength76Characters)

问题是trueBinary is a Data, and trueBinary.count is an Int, and Int没有base64EncodedString方法。你要这个:

let mystere = trueBinary.base64EncodedString(
              options: .lineLength76Characters)

至于“lineLength”概念:如果您不想,则不必指定行长度选项。可以说我不应该在您的问题中引用的答案中指定一个,因为HTTP 请求严格来说并不是 MIME 消息 and 不受 MIME 行长度限制。你可以这样做:

let mystere = trueBinary.base64EncodedString()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Data(不是 NSData),实际上如何制作 utf8 版本的 jpeg? 的相关文章

  • Swift 完成处理程序语法

    此代码用于回答此处的问题 如何在 Swift 中发出 HTTP 请求 https stackoverflow com questions 24016142 how to make an http request in swift let u
  • 扩展可能不包含存储的属性,但为什么允许静态

    扩展不能包含存储属性 但是为什么扩展中可以定义静态存储属性呢 我也没有找到任何文档提到扩展中允许静态属性 extension String static let test Test static var test2 Test2 扩展名不能包
  • iOS 自定义单元格设计放在哪里? awakeFromNib 还是 cellForRowAtIndexPath?

    所以 基本上我用笔尖做了一个定制单元 希望我应用一些定制设计 比如颜色和阴影 我发现了两种应用样式的方法 awakeFromNib override func awakeFromNib super awakeFromNib Containe
  • Swift 中的“funcobserveValueForKeyPath(keyPath:NSString,object:AnyObject,change:NSDictionary,context:Void)”问题

    我已经为 AVPlayer 添加了一个观察者 如下所示 self audioPlayer addObserver self forKeyPath currentItem status options NSKeyValueObservingO
  • Firestore 更新后仅获取文档一次

    我有一个 tableView 它从 Firestore 集合中获取所有文档 并且我只想在用户刷新 tableView 后将最后一个文档添加到 Firestore 时获取一次 然后我想删除侦听器 以便当用户刷新 tableView 时仅获取文
  • 由 Xcode 机器人运行时,在文本视图中键入文本时 UI 测试失败

    我有以下 XCTest UI 测试 将文本键入文本视图 let textView app textViews elementBoundByIndex 0 textView tap textView typeText Hello world
  • UIButton 导致无法识别的选择器发送到实例

    我正在尝试使用 for 循环创建多个按钮 但在使用 sender 函数时遇到问题 我有以下代码 func setUpButtons for i in 1 3 let btn UIButton UIButton frame CGRect x
  • 如何在 SwiftUI 中仅使用 ForEach 而不是列表来滑动删除

    我正在 SwiftUI 中使用 ForEach 制作自定义列表 我的目标是进行滑动删除手势 而不是将 ForEach 嵌入到列表中 到目前为止 这是我的代码 import SwiftUI struct ContentView View le
  • 使用完成处理程序在 Swift 中调用连续动画

    我正在制作一个可以显示化学反应动画的应用程序 每个原子都是一个 SCNSphere 并通过 SCNActions 进行动画处理 我尝试使用 runAction 中的完成处理程序在当前操作完成后调用下一个动画 因为每个原子必须做出很多不同的运
  • 减少 CoreData 的调试输出?

    我正在开发一个使用 CoreData 的 iOS macOS 项目 它工作正常 但它会向控制台输出大量调试信息 这使得控制台无法使用 因为我的打印语句隐藏在所有与 CoreData 相关的内容中 我有一个非常简单的 CoreData 设置
  • Swift:使具有相同“形状”的两种类型符合通用协议

    我有两种不同的类型 它们代表相同的数据 并且具有完全相同的 形状 这两种不同的类型是代码生成的 我被迫处理它们 但是 我想让它们符合一个通用的协议 这样我就可以对这两种类型一视同仁 这是一个例子 假设这是我所坚持的两种代码生成类型 stru
  • 根据 iOS 版本使用不同的类实现?

    iOS 11 最近添加了一个我想使用的新功能 但我仍然需要支持旧版本的 iOS 有没有一种方法可以将同一个类编写两次 并让较新版本的 iOS 使用该类的一个版本 而旧版本的 iOS 使用另一个版本 注 最初我用的是if available
  • 用于 UTF8 到 1252 的 Windows C API

    我熟悉 WideCharToMultiByte 和 MultiByteToWideChar 转换 可以使用它们来做类似的事情 UTF8 gt UTF16 gt 1252 我知道 iconv 会满足我的需要 但是有人知道任何 MS 库可以在一
  • 无法在 ios 应用程序中通过 googlecast 正确投射视频

    我正在开发一个基于 AVPlayer 的自定义视频播放器项目 尝试整合谷歌演员 我已经根据谷歌图进行了集成 https codelabs developers google com codelabs cast videos ios http
  • 如何使用 CNContacts 快速获取手机号码?

    我有一些代码可以检索用户联系人中的所有电话号码 但只想过滤掉手机号码 目前 我只是通过将第一个数字为 或第二个数字为 7 的数字添加到数组中来实现此目的 如下所示 func findContacts gt CNContact let key
  • Swift:设置协议的可选属性

    如何设置协议的可选属性 例如 UITextInputTraits 有许多可选的读 写属性 当我尝试以下操作时 出现编译错误 无法分配给 textInputTraits 中的 keyboardType func initializeTextI
  • Swift:长按手势识别器 - 检测轻击和长按

    我想连接一个动作 如果手势是点击 它会以特定的方式为对象设置动画 但如果按下持续时间超过 0 5 秒 它会执行其他操作 现在 我刚刚连接了动画 我不知道如何区分长按和点击 如何访问新闻持续时间以实现上述目的 IBAction func ta
  • 我的 UICollectionView 无法使用 Swift 平滑滚动

    我有一个CollectionView它使单元出队取决于message类型 例如 文本 图像 我遇到的问题是当我向上 向下滚动时滚动确实很不稳定 因此用户体验不是很好 这仅在第一次加载单元格时发生 之后滚动就会平滑 我有什么想法可以解决这个问
  • 关闭捕获上下文 Swift

    当我尝试更改闭包中的变量时出现此错误 A C function pointer cannot be formed from a closure that captures context 是否有解决方法或者仍然可以更改闭包内的变量 My C
  • 在 SwiftUI 中使用可观察对象切换视图

    我正在练习尝试使用 SwiftUI 中的可观察对象切换视图 但我的代码无法正常工作 我知道我可以用 State 来做到这一点 但我想用可观察的对象来实现这一点 当我单击内容视图中的图像时 图像不会改变 有人能帮我吗 内容视图 swift i

随机推荐