NSDATA 및 UIIMAGE
-
05-07-2019 - |
문제
나는로드하려고한다 UIImage
객체 NSData
, 그리고 샘플 코드가있었습니다 NSImage
, 나는 그들이 동일해야한다고 생각합니다. 하지만 이제 이미지를로드하면서 문제 해결에 가장 적합한 것이 무엇인지 궁금합니다. UIImage
로딩 NSData
문제.
해결책
uiimage에는 -initWithData:
방법. 문서에서 : "데이터 매개 변수의 데이터는 시스템의 지원되는 이미지 유형 중 하나의 파일 형식과 일치하도록 형식화되어야합니다."
다른 팁
나는 시도하지 않았다 UIImageJPEGRepresentation()
전에, 그러나 UIImagePNGRepresentation
나에게 잘 작동하고 사이의 전환 NSData
그리고 UIImage
단순하다 :
NSData *imageData = UIImagePNGRepresentation(image);
UIImage *image=[UIImage imageWithData:imageData];
이미지를 nsdata로 변환하려면 다음을 시도하십시오.
UIImage *img = [UIImage imageNamed:@"image.png"];
NSData *data1 = UIImagePNGRepresentation(img);
thedata는 a NSData
이미 데이터가 포함 된 객체. 파일로드/다운로드를 NSData
사용하기 전에 물체. 사용하여 검사 할 수 있습니다 NSLog
thedata에서 유효한 데이터가 포함되어 있는지 확인하십시오.
코드를 안전하게 실행하려면 기능 uiimagepngrepresentation returns, 선택적 값으로 데이터와 함께 if-let 블록을 사용하십시오.
if let img = UIImage(named: "Hello.png") {
if let data:Data = UIImagePNGRepresentation(img) {
// Handle operations with data here...
}
}
메모: 데이터 Swift 3 클래스입니다. Swift 3과 함께 NSData 대신 데이터를 사용하십시오
일반 이미지 작업 (PNG & JPG와 같은) :
if let img = UIImage(named: "Hello.png") {
if let data:Data = UIImagePNGRepresentation(img) {
handleOperationWithData(data: data)
} else if let data:Data = UIImageJPEGRepresentation(img, 1.0) {
handleOperationWithData(data: data)
}
}
*******
func handleOperationWithData(data: Data) {
// Handle operations with data here...
if let image = UIImage(data: data) {
// Use image...
}
}
확장자를 사용하여 :
extension UIImage {
var pngRepresentationData: Data? {
return UIImagePNGRepresentation(img)
}
var jpegRepresentationData: Data? {
return UIImageJPEGRepresentation(self, 1.0)
}
}
*******
if let img = UIImage(named: "Hello.png") {
if let data = img.pngRepresentationData {
handleOperationWithData(data: data)
} else if let data = jpegRepresentationData {
handleOperationWithData(data: data)
}
}
*******
func handleOperationWithData(data: Data) {
// Handle operations with data here...
if let image = UIImage(data: data) {
// Use image...
}
}
제휴하지 않습니다 StackOverflow