如何在iOS和Android中可靠地为画廊图像生成校验和?
我正在Android和iOS上构建一个应用程序,我对生成两个平台之间匹配的校验和很好奇。我需要为画廊图像生成校验和。我注意到,当我在Android中访问图像时,它们是JPEG格式的,但当从设备库访问图像时,iOS似乎会将所有图像转换为PNG格式。从我的笔记本电脑复制到两台设备的两张相同的照片会发生这种情况。原始照片是JPEG格式的如何在iOS和Android中可靠地为画廊图像生成校验和?,android,ios,image,Android,Ios,Image,我正在Android和iOS上构建一个应用程序,我对生成两个平台之间匹配的校验和很好奇。我需要为画廊图像生成校验和。我注意到,当我在Android中访问图像时,它们是JPEG格式的,但当从设备库访问图像时,iOS似乎会将所有图像转换为PNG格式。从我的笔记本电脑复制到两台设备的两张相同的照片会发生这种情况。原始照片是JPEG格式的 问题:如何在两个平台上为图像生成匹配校验和?我知道人们可能不是两个平台上的开发者,但也可以自由地单独分享您的知识。对于android,您可以使用此选项 公共静态字符串
问题:如何在两个平台上为图像生成匹配校验和?我知道人们可能不是两个平台上的开发者,但也可以自由地单独分享您的知识。对于android,您可以使用此选项 公共静态字符串calculatercchecksum(字符串文件路径){
对于android,你可以使用这个
String crc = "00000000";
InputStream fi;
CRC32 gCRC = null;
try {
fi = new BufferedInputStream(new FileInputStream(filepath));
byte[] buf = new byte[1024 * 64];
int gByte = 0;
gCRC = new CRC32();
try {
while ((gByte = fi.read(buf)) > 0) {
gCRC.update(buf, 0, gByte);
}
fi.close();
} catch (IOException e) {
e.printStackTrace();
return crc;
}
try {
fi.close();
} catch (IOException e) {
e.printStackTrace();
return crc;
}
} catch (FileNotFoundException e) {
e.printStackTrace();
return crc;
} catch (Exception e) {
e.printStackTrace();
return crc;
}
finally {
// Log.d("Zip", "value is " + Long.toHexString(gCRC.getValue()));
// Log.d("Zip", "value in decfimal is " + gCRC.getValue());
}
crc = gCRC.getValue() + "";
return crc;
}