データベースからテーブルセルを入力する必要があります。画像はデバイス上にあります。その画像をimageDataObject
に保存する必要があります。そのUIImage
をNSData
に変換する方法を教えてください。提案してください、私は多くの解決策を試しましたが、そのNSData
をUIImage
に変換し直していません。
cell.textLabel.text = [[offlineImageListArray objectAtIndex:indexPath.row] imageName];
UIImage *thumbnail = [self retrieveImageFromDevice:[[offlineImageListArray objectAtIndex:indexPath.row] imageName]];
NSData* data = ??????????;
ImageData *imageDataObject = [[ImageData alloc] initWithImageId:[[offlineImageListArray objectAtIndex:indexPath.row]imageId]
imageName:[[offlineImageListArray objectAtIndex:indexPath.row] imageName] imageData:data];
[imagesArray addObject:imageDataObject];
UIImage
をNSData
に変換するには、UIImageJPEGRepresentation(UIImage *image, CGFloat compressionQuality)
またはUIImagePNGRepresentation(UIImage *image)
を使用します
NSData
をUIImage
に変換するには、[UIImage imageWithData:imageData]
を使用します
したがって、例は次のようになります。
cell.textLabel.text = [[offlineImageListArray objectAtIndex:indexPath.row] imageName];
UIImage *thumbnail = [self retrieveImageFromDevice:[[offlineImageListArray objectAtIndex:indexPath.row] imageName]];
NSData* data = UIImagePNGRepresentation(thumbnail);
ImageData *imageDataObject = [[ImageData alloc] initWithImageId:[[offlineImageListArray objectAtIndex:indexPath.row]imageId] imageName:[[offlineImageListArray objectAtIndex:indexPath.row] imageName] imageData:data];
[imagesArray addObject:imageDataObject];
参照: https://developer.Apple.com/LIBRARY/IOS/documentation/UIKit/Reference/UIKitFunctionReference/Reference/reference.htmlhttps://developer.Apple.com/ Library/ios/documentation/UIKit/Reference/UIImage_Class/Reference/Reference.html
これで試してください:
これをUIImage
をNSData
に変換するために使用します。
NSData *imagedata = UIImagePNGRepresentation(thumbnail);
画像データをUIImage
に変換して戻すには、これを試してください
UIImage *image= [UIImage imageWithData:imagedata];
Swiftバージョン:
let imageData = UIImagePNGRepresentation(image!)!
let imageFromData = UIImage(data: imageData)
画像からデータを変換:
画像形式に応じて、JPEGまたはPNG表現を試してください。
UIImageJPEGRepresentation
指定された画像のデータをJPEG形式で返します。
NSData * UIImageJPEGRepresentation (
UIImage *image,
CGFloat compressionQuality
);
UIImagePNGRepresentation
指定された画像のデータをPNG形式で返します。
NSData * UIImagePNGRepresentation (
UIImage *image
);
例:
extension UIImage {
var pngRepresentationData: Data? {
return UIImagePNGRepresentation(img)
}
var jpegRepresentationData: Data? {
return UIImageJPEGRepresentation(self, 1.0)
}
}
使用:
let data = myImage.jpegRepresentationData
let data1 = myImage.pngRepresentationData
データから画像を変換:
let image = UIImage(data: data)
関数UIImagePNGRepresentationがオプションの値を返すため、データでif-letブロックを使用して、アプリのクラッシュとコードの安全な実行を防止します。
if let img = UIImage(named: "TestImage.png") {
if let data:Data = UIImagePNGRepresentation(img) {
// Handle operations with data here...
}
}
注意: データ is Swift 3class。NSDataの代わりにSwift 3
一般的な画像操作(pngとjpgの両方など):
if let img = UIImage(named: "TestImage.png") { //UIImage(named: "TestImage.jpg")
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: "TestImage.png") { //UIImage(named: "TestImage.jpg")
if let data = img.pngRepresentationData {
handleOperationWithData(data: data)
} else if let data = img.jpegRepresentationData {
handleOperationWithData(data: data)
}
}
*******
func handleOperationWithData(data: Data) {
// Handle operations with data here...
if let image = UIImage(data: data) {
// Use image...
}
}