Я синхронизировал изображение на 2 Ipads (скажем, IPAD1 и IPAD2) через ITunes.
Затем, когда я получил изображения с помощью блока ALAssetLibrary, размер файла в 2 Ipads отличается.
(IPAD1 Размер файла: 0,024059, IPAD2 Размер файла: 0,024325).
Могу ли я знать, почему одни и те же файлы имеют разный размер в IPAD1 и IPAD2?
Однако я сохранил изображение в IPAD1 и IPAD2 через браузер Safari, нажав на изображение с одной и той же веб-страницы, и получил тот же размер файла для изображения в Ipad1 и Ipad2 при получении через ALAssetLibarary.
Пожалуйста, скажите мне ваши ценные предложения ....
Использование
I am doing the image comparison in Ipad PhotoLibrary.
Whenever an Image transfer request is coming from another device, i have to test the image file exist in PhotoLibrary.
So mentor image request will have CRC code of the requested image which will uneque for the same image file and i am generating the CRC code for all my photoLibrary images and comparing it with the requested image CRC code.
So whenever these 2 CRC's are equal , i can easily identify the files are same.
Код, который я использовал для получения изображения PhotoLibrary:
ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *myasset)
{
ALAssetRepresentation *rep = [myasset defaultRepresentation];
NSLog(@"GOT ASSET, File size: %f", [rep size] / (1024.0f*1024.0f));
uint8_t* buffer = malloc([rep size]);
NSError* error = NULL;
NSUInteger bytes = [rep getBytes:buffer fromOffset:0 length:[rep size] error:&error];
if (bytes == [rep size])
{
defaultRepresentationData = [[NSData dataWithBytes:buffer length:bytes] retain];
CGImageRef iref = [rep fullResolutionImage];
UIImage *photLibraryImage = [UIImage imageWithCGImage:iref];
NSData *imageData = UIImagePNGRepresentation(photLibraryImage); //convert image into .png format.
const int imageCRC = [self CRCForImage:imageData]]; //getting CRC value for image data
NSLog([NSString stringWithFormat:@"@@@@@@@@ image CRC is:%u",imageCRC ]);
}
else
{
NSLog(@"Error '%@' reading bytes from asset: '%@'", [error localizedDescription]); //assetURL);
}
free(buffer);
// notifies the lock that "all tasks are finished"
};
//
ALAssetsLibraryAccessFailureBlock failureblock = ^(NSError *myerror)
{
NSLog(@"NOT GOT ASSET");
};
NSURL *asseturl = [NSURL URLWithString:fileName];
ALAssetsLibrary* assetslibrary = [[[ALAssetsLibrary alloc] init] autorelease];
[assetslibrary assetForURL:asseturl resultBlock:resultblock failureBlock:failureblock];
}
NSLog (@ "ПОЛУЧИЛ АКТИВ, Размер файла:% f", [размер повторения] / (1024.0f * 1024.0f)); печать разных значений одного и того же файла на разных устройствах.
Подробности журнала консоли
Ipad1
ПОЛУЧИЛ АКТИВ, Размер файла: 0.024059
Изображение CRC: 2659650838
Ipad2
GOT ASSET, Размер файла: 0.024325
@@@@@@@@ image CRC: 331786167
ВЕРСИЯ IPAD ДЕТАЛИ
IPAD1:
Версия: 4.2.1 (8C148)
Модель: MB292LL
IPAD2:
Версия: 4.3.5 (8L1)
Модель: MB292LL
Спасибо.