Skip to content
New issue

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

不支持预览base64格式图片 #249

Closed
dyy2016 opened this issue Jan 6, 2021 · 11 comments
Closed

不支持预览base64格式图片 #249

dyy2016 opened this issue Jan 6, 2021 · 11 comments
Labels
good first issue Good for newcomers

Comments

@dyy2016
Copy link

dyy2016 commented Jan 6, 2021

使用环境

taro

问题描述

将从服务端获取的图片二进制流转base64显示出来了,但是点图片没反应

@jin-yufeng
Copy link
Owner

这个目前设计上就是这个样子,主要有以下几个原因:

  1. base64 一般只用于几个 KB 的小图片,这种小图片一般不需要放大预览(小程序环境下要通过 setData 将数据送到视图层,base64 要是大了更容易影响性能)
  2. previewImage 和长按保存等基本都不支持 base64,所以即使预览了基本也无法使用
    这个问题之前有一个解决办法是通过 FileSystemManager.writeFilebase64 写到本地文件里再预览,组件卸载的时候再清理掉缓存;这样虽然可行,但一个是增加了复杂度,另外有些时候组件的 detached 周期不一定会执行(比如首页或者直接被关掉),这样容易造成缓存堆积,所以还是去掉了

@dyy2016
Copy link
Author

dyy2016 commented Jan 6, 2021

这个目前设计上就是这个样子,主要有以下几个原因:

  1. base64 一般只用于几个 KB 的小图片,这种小图片一般不需要放大预览(小程序环境下要通过 setData 将数据送到视图层,base64 要是大了更容易影响性能)
  2. previewImage 和长按保存等基本都不支持 base64,所以即使预览了基本也无法使用
    这个问题之前有一个解决办法是通过 FileSystemManager.writeFilebase64 写到本地文件里再预览,组件卸载的时候再清理掉缓存;这样虽然可行,但一个是增加了复杂度,另外有些时候组件的 detached 周期不一定会执行(比如首页或者直接被关掉),这样容易造成缓存堆积,所以还是去掉了

感谢您的回复,还有一个问题,我如果不想图片自适应,就显示图片的原大小,怎么处理

@jin-yufeng
Copy link
Owner

是说不要限制图片的最大宽度吗?因为很多图片原始大小都会超出屏幕大小,所以组件默认给所有图片加了 max-width:100%,不需要的话可以去掉以下两个地方:

  1. parser.js
  2. node/node.wxss

dist 目录可以对应着找一下位置

@dyy2016
Copy link
Author

dyy2016 commented Jan 6, 2021

是说不要限制图片的最大宽度吗?因为很多图片原始大小都会超出屏幕大小,所以组件默认给所有图片加了 max-width:100%,不需要的话可以去掉以下两个地方:

  1. parser.js
  2. node/node.wxss

dist 目录可以对应着找一下位置

用的是mp-html/dist/mp-weixin下的文件,没您说的这两行代码

@jin-yufeng
Copy link
Owner

dist 目录下是压缩后的,只有一行,可以搜索一下 max-width
或者在 src 目录下修改,然后构建到 dist 目录

npm install
npm run build:weixin

@dyy2016
Copy link
Author

dyy2016 commented Jan 6, 2021

dist 目录下是压缩后的,只有一行,可以搜索一下 max-width
或者在 src 目录下修改,然后构建到 dist 目录

npm install
npm run build:weixin

删了您刚说的两个地方,重新构建,宽度还是100%

@jin-yufeng
Copy link
Owner

提供 html 内容或能复现的 demo 项目

@dyy2016
Copy link
Author

dyy2016 commented Jan 6, 2021

提供 html 内容或能复现的 demo 项目

http://note.youdao.com/s/KwcxR6pC

@dyy2016
Copy link
Author

dyy2016 commented Jan 6, 2021

提供 html 内容或能复现的 demo 项目

http://note.youdao.com/s/KwcxR6pC

@dyy2016 dyy2016 closed this as completed Jan 6, 2021
@dyy2016 dyy2016 reopened this Jan 6, 2021
@jin-yufeng
Copy link
Owner

没有复现你说的问题
demo.zip

微信截图_20210106235617

@dyy2016
Copy link
Author

dyy2016 commented Jan 6, 2021

没有复现你说的问题
demo.zip

微信截图_20210106235617

非常感谢大神的耐心回复,已经解决,我这面文件引用的问题

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

2 participants