相关疑难解决方法(0)

如何确定当前的iPhone /设备型号?

有没有办法在Swift中获取设备型号名称(iPhone 4S,iPhone 5,iPhone 5S等)?

我知道有一个名为的属性,UIDevice.currentDevice().model但它只返回设备类型(iPod touch,iPhone,iPad,iPhone模拟器等).

我也知道可以使用这种方法在Objective-C中轻松完成:

#import <sys/utsname.h>

struct utsname systemInfo;
uname(&systemInfo);

NSString* deviceModel = [NSString stringWithCString:systemInfo.machine
                          encoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)

但是我正在Swift中开发我的iPhone应用程序,所以有人可以用同样的方式帮助我在Swift中解决这个问题吗?

iphone device ios swift

358
推荐指数
16
解决办法
23万
查看次数

在Swift中旋转UIImage

我正在使用Xcode 6.0.1和Swift.我有一个UIImage,我想用旧图像作为源来制作另一个图像,新图像以某种方式旋转......比如垂直翻转.

几个月前这个问题已得到解答.但是,即使情况相同,该解决方案也不适用于我.

当我有

var image = UIImage(CGImage: otherImage.CGImage, scale: 1.0, orientation: .DownMirrored)
Run Code Online (Sandbox Code Playgroud)

Xcode抱怨在调用中有一个"额外参数'缩放'".在使用Apple文档检查之后,这没有任何意义,因为该版本的初始化程序确实采用了这三个参数.省略比例和方向参数确实解决了问题,但阻止我进行轮换.

我能找到的唯一另一个参考是这个人,他有同样的问题.

你怎么看?

我确实需要这个在这个版本的Xcode上运行,所以如果有另一种方法来执行旋转(我还没有找到一个)那将是有用的.

uiimage ios swift

45
推荐指数
8
解决办法
5万
查看次数

iPhone - 镜像从前置摄像头拍摄的照片

使用iPhone 4的前置摄像头拍摄照片时,拍摄的照片与iPhone屏幕上显示的照片相比较.我怎样才能恢复UIImage(不是UIImageView)的"屏幕"视图,并能够像这样保存它?

我试过了 :

UIImage* transformedImage = [UIImage imageWithCGImage:pickedImage.CGImage scale:1.0 orientation:UIImageOrientationLeftMirrored];
UIImageWriteToSavedPhotosAlbum (transformedImage, self, @selector(photoSaved:didFinishSavingWithError:contextInfo:), nil);
Run Code Online (Sandbox Code Playgroud)

然后把它放在屏幕上.它与屏幕上显示的几乎相同,但保存的图像失真.

那么......我怎样才能恢复UIImage(不是UIImageView)的"屏幕"视图,并能够像这样保存它?

我也尝试过这种方式:

UIImage* pickedImage = [[info objectForKey:UIImagePickerControllerOriginalImage] retain];
UIImage* transformedImage;

CGSize imageSize = pickedImage.size;
UIGraphicsBeginImageContextWithOptions(imageSize, YES, 1.0);
GContextRef ctx = UIGraphicsGetCurrentContext();

CGContextRotateCTM(ctx, 3.14);  // rotate by 180°
CGContextScaleCTM(ctx, 1.0, -1.0); // flip vertical
CGContextDrawImage(ctx, CGRectMake(0.0, 0.0, imageSize.width, imageSize.height), pickedImage.CGImage);
transformedImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();
Run Code Online (Sandbox Code Playgroud)

但这只是一个黑色的图像.

iphone camera mirroring uiimagepickercontroller uiimage

10
推荐指数
6
解决办法
3万
查看次数

使用UIImagePickerController捕获具有特定分辨率的照片

我想拍摄A4纸的照片.重要的是,我希望文本可读,但我不希望像2592x1936像素或3264x2448像素这样的分辨率的图像太大.此外,我认为捕获后重新缩放照片需要额外的时间,所以我也想避免这种情况.

我们可以选择以下品质:

UIImagePickerControllerQualityTypeHigh = 0   
UIImagePickerControllerQualityTypeMedium          = 1  default value   
UIImagePickerControllerQualityTypeLow            = 2   
UIImagePickerControllerQualityType640x480         = 3,   
UIImagePickerControllerQualityTypeIFrame1280x720  = 4,   
UIImagePickerControllerQualityTypeIFrame960x540   = 5 
Run Code Online (Sandbox Code Playgroud)

如果我们使用的话AVFoundation,我们可以从这个漂亮的表中选择分辨率(标题为"捕捉静止图像").

但是有没有类似的表格UIImagePickerController,例如UIImagePickerControllerQualityTypeHigh在iPhone 3gs上等于1920x1080?

iphone uiimagepickercontroller ios4 ios

10
推荐指数
2
解决办法
2万
查看次数

剥离Objective-C中的所有Exif数据

如何使用objective-c去除UIImage中的所有exif数据?我已经能够使用以下内容获取exif数据:

NSData* pngData =  UIImagePNGRepresentation(image);
CGImageSourceRef imageSource = CGImageSourceCreateWithData((CFDataRef)pngData, NULL);

NSDictionary* dic   =   nil;
if ( NULL == imageSource )
{
    #ifdef _DEBUG
    CGImageSourceStatus status = CGImageSourceGetStatus ( source );
    NSLog ( @"Error: file name : %@ - Status: %d", file, status );
    #endif
}
else
{
    CFDictionaryRef propertyRef = CGImageSourceCopyPropertiesAtIndex ( imageSource, 0, NULL );
    CGImageMetadataRef metadataRef = CGImageSourceCopyMetadataAtIndex ( imageSource, 0, NULL );
    // CFDictionaryRef metadataRef = CFDictionaryGetValue(imageProperties, kCGImagePropertyExifDictionary);
    if (metadataRef) {
        NSDictionary* immutableMetadata = (NSDictionary *)metadataRef;
        if …
Run Code Online (Sandbox Code Playgroud)

exif objective-c uiimage

7
推荐指数
1
解决办法
5154
查看次数