小编Ray*_*aph的帖子

将更新的图像保存到PhotoKit时缺少图像元数据

我在更新图像的元数据并将其保存回照片库时遇到问题.一切正常,除了改变后的图像元数据缺少之前的条目,我没有得到操纵图像或执行照片库更改块的任何错误.此外,在将字典写回图像之前的字典看起来像原始加上调试器中的字典.

我的问题是:

  1. 我做错了什么会导致重写现有的属性与额外的数据,以消除那里有什么?
  2. 这样做有更好,更规范的方法吗?更新图像中的某些元数据似乎有很多机制.这看起来像是别人在做什么.

编辑:

在保存之前,所有Exif和Tiff值都存在.这是使用以下代码保存到照片后的整个元数据:

["PixelHeight": 2448, "PixelWidth": 3264, "{Exif}": {
ColorSpace = 1;
PixelXDimension = 3264;
PixelYDimension = 2448;}, "Depth": 8, "ProfileName": sRGB IEC61966-2.1, "Orientation": 1, "{TIFF}": {
Orientation = 1;}, "ColorModel": RGB, "{JFIF}": {
DensityUnit = 0;
JFIFVersion =     (
    1,
    0,
    1
);
XDensity = 72;
YDensity = 72;}]
Run Code Online (Sandbox Code Playgroud)

代码全部在Swift 3中,在iOS 10.1上进行测试

基本工作流程是:

    // Get a mutable copy of the existing Exif meta
    let mutableMetaData = getMutableMetadataFrom(imageData: data)

    // Check to see if it …
Run Code Online (Sandbox Code Playgroud)

core-graphics ios photosframework swift3

8
推荐指数
1
解决办法
1284
查看次数

"bool"作为对象vs"string"作为对象测试相等

我对C#比较陌生,今天我注意到一些有趣的东西,我想我从来没有注意到,或者我错过了一些东西.这是一个NUnit测试给出一个例子:

object boolean1 = false;
object booloan2 = false;
Assert.That(boolean1 == booloan2);
Run Code Online (Sandbox Code Playgroud)

此单元测试失败,但是这个测试通过:

object string1 = "string";
object string2 = "string";
Assert.That(string1 == string2);
Run Code Online (Sandbox Code Playgroud)

我并不感到惊讶,第一个看不到boolean1,而boolean2是不同的引用.但令我不安的是,第一个失败了,第二个失败了.我(在某个MSDN上)读到了对String类做了一些魔术来促进这一点.我认为我的问题真的是为什么这个行为不是在bool中复制了?作为注释...如果boolean1和2被声明为bool那么没有问题.

这些差异的原因是什么或为什么以这种方式实施?是否有一种情况,你想要引用bool对象除了它的值以外的任何东西?

.net c# mono nunit

2
推荐指数
1
解决办法
1460
查看次数

标签 统计

.net ×1

c# ×1

core-graphics ×1

ios ×1

mono ×1

nunit ×1

photosframework ×1

swift3 ×1