Closed longdw closed 5 years ago
特意实验了很多遍,确实会出现这种串的情况,两组照片,通过zip压缩,然后会出现某一组压缩后的照片跟压缩前对应不上。大概3次就会出现一次这种情况。
另外刚又发现,不用zip,两组并行的去压缩,也会出现类似的情况,打印出来的结果显示,压缩后的照片和压缩前的不一致。代码如下
me.shaohui.advancedluban.Luban.compress(orderFiles, new File(path))
.setMaxSize(200) // 限制最终图片大小(单位:Kb)
// 自定义压缩图片格式,目前只支持:JEPG和WEBP,因为png不支持压缩图片品质
.putGear(Luban.CUSTOM_GEAR) // 使用 CUSTOM_GEAR 压缩模式
.asListObservable().subscribe(new Observer<List<File>>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
}
@Override
public void onNext(List<File> files) {
maps.put("file", files);
handleZipCompress(maps);
}
@Override
public void onError(Throwable e) {
if (mView != null) {
mView.onCompreError(e);
}
}
@Override
public void onComplete() {
}
});
me.shaohui.advancedluban.Luban.compress(warrantyFiles, new File(path))
.setMaxSize(200) // 限制最终图片大小(单位:Kb)
// 自定义压缩图片格式,目前只支持:JEPG和WEBP,因为png不支持压缩图片品质
.putGear(Luban.CUSTOM_GEAR) // 使用 CUSTOM_GEAR 压缩模式
.asListObservable().subscribe(new Observer<List<File>>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
}
@Override
public void onNext(List<File> files) {
maps.put("warranty", files);
handleZipCompress(maps);
}
@Override
public void onError(Throwable e) {
if (mView != null) {
mView.onCompreError(e);
}
}
@Override
public void onComplete() {
}
});
我是通过这种方式去检查的:
StringBuilder sb = new StringBuilder();
for (String key : mapFiles.keySet()) {
sb.append(key).append("\n");
List<File> files = mapFiles.get(key);
for (File file : files) {
sb.append(file.getAbsolutePath()).append("\n");
}
}
new AlertDialog.Builder(this).setMessage(sb.toString()).setPositiveButton("确定", null).show();
只要发现打印的两组中有一样的路径,肯定是有问题的。各位有遇到类似的情况还请指导下怎么解决。@Curzibn
想问下作者,这样我压缩两组照片会不会有问题呢?在生产环境中出现这样的情况,两组照片如: A、B两组,A组有照片x,B组有照片y、z,但是压缩后发现B组变成了x、z,也就是原本B组中的y照片消失了,变成了A组中的x了。