We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
v3.11.2
可以在某些配置低或者平板上可以复现
setAddBitmapWatermarkListener api 如果使用异步处理并使用onCallback回调的时候, 虽然从日志来看是按顺序处理并最后调用dispatchWatermarkResult的,但是保存的水印图片会存在保存不完整或者丢失。 如果在直接写水印代码,不使用异步处理,是正常的,但是会导致loading dialog 被卡住。
使用了kotlin协程的普通的线程工具类都会出现
调用代码 1
.setAddBitmapWatermarkListener { context, srcPath, _, call -> val path = if (srcPath.startsWith("content://")) { NovaFile.getPathByUri(context, Uri.parse(srcPath)) } else { srcPath } GlobalIOScope.launch { val copyUrl = copyFileToNova(albumKey, path) val dateTime = path2Date(path) signWatermark(copyUrl, location, nickName, dateTime) withContext(Dispatchers.Main){ call.onCallback(srcPath, copyUrl) } } }
调用代码2
.setAddBitmapWatermarkListener { context, srcPath, _, call -> ThreadUtils.executeByIo(object : SimpleTask<String>() { override fun doInBackground(): String { val path = if (srcPath.startsWith("content://")) { NovaFile.getPathByUri(context, Uri.parse(srcPath)) } else { srcPath } val copyUrl = copyFileToNova(albumKey, path) val dateTime = path2Date(path) signWatermark(copyUrl, location, nickName, dateTime) } override fun onSuccess(copyUrl: String?) { call.onCallback(srcPath, copyUrl) } }) }
尝试修改addBitmapWatermark的代码,直接让这部分运行在 PictureThreadUtils 的线程里可以正常工作,但是估计违背api涉及初衷。
PictureThreadUtils.executeByIo(new PictureThreadUtils.SimpleTask<ArrayList<LocalMedia>>() { @Override public ArrayList<LocalMedia> doInBackground() { for (LocalMedia localMedia : result) { selectorConfig.onBitmapWatermarkListener.onAddBitmapWatermark( getAppContext(), localMedia.getAvailablePath(), localMedia.getMimeType(), (srcPath, resultPath) -> { if (TextUtils.isEmpty(srcPath)) { dispatchWatermarkResult(result); } else { localMedia.setWatermarkPath(resultPath); } } ); } return result; } @Override public void onSuccess(ArrayList<LocalMedia> result) { PictureThreadUtils.cancel(this); dispatchWatermarkResult(result); } });
视频内有两张图片的颜色是不对的,其他更严重的情况是有时候图片只有一半或者直接丢失。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Current use version?
当前使用的版本是多少?
v3.11.2
Will this problem occur in demo?
Demo能否复现这问题?
可以在某些配置低或者平板上可以复现
Describe the problem or provide an error log?
描述问题或提供错误log?
setAddBitmapWatermarkListener api 如果使用异步处理并使用onCallback回调的时候,
虽然从日志来看是按顺序处理并最后调用dispatchWatermarkResult的,但是保存的水印图片会存在保存不完整或者丢失。
如果在直接写水印代码,不使用异步处理,是正常的,但是会导致loading dialog 被卡住。
使用了kotlin协程的普通的线程工具类都会出现
调用代码 1
调用代码2
尝试修改addBitmapWatermark的代码,直接让这部分运行在 PictureThreadUtils 的线程里可以正常工作,但是估计违背api涉及初衷。
视频内有两张图片的颜色是不对的,其他更严重的情况是有时候图片只有一半或者直接丢失。
9a681e6df4c85240385070b858dce0a0.mp4
The text was updated successfully, but these errors were encountered: