首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当使用从cordovacapture捕获图像返回的图像路径时,正在显示破碎的图像

当使用从cordovacapture捕获图像返回的图像路径时,正在显示破碎的图像
EN

Stack Overflow用户
提问于 2015-11-05 02:16:43
回答 1查看 431关注 0票数 1

我尝试过各种解决方案:$cordovaCapture、$cordovaCamera(DATA_URL可以显示图片,但我希望file_URI也这样做)。

下面是我的代码片段:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$scope.addImage = function() {
   var options = {limit: 1};
   $cordovaCapture.captureImage(options).then(function(imageData) {
    console.log(imageData);
     // var jsonobj=angular.toJson(imageData);
       $scope.profile.image = imageData[0];
       console.log(angular.toJson(imageData));
       console.log($scope.profile.image.localURL);//the path to upload
         document.getElementById('myImage').src = "'"+$scope.profile.image.localURL+"'";//have already tried without the quottes
     /* window.plugins.Base64.encodeFile($scope.profile.image.localURL,function(base64){  // Encode URI to Base64 needed for contacts plugin
    $scope.profile.image.preview = base64;
    console.log($scope.profile.image.preview);
});*/
      // Success! Image data is here
    }, function(err) {
    });

我甚至尝试在模块中添加确定性,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.config( [
'$compileProvider',
function( $compileProvider )
{ 
$compileProvider.imgSrcSanitizationWhitelist(/^\s*(https?|file|content|blob|cdvfile):|data:image\//);
}
])

这也没什么用。我正在测试该项目的设备和模拟器。我甚至尝试过从路径对文件进行base64编码。没有什么东西能显示最近拍摄的照片。我检索的路径如下: cdvfile://localhost/persistent/DCIM/Camera/123123123.jpg

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-02 20:33:19

而不是使用file_URI上传图像。我使用data_URL,将图像转换为blob,并使用科多瓦-文件传输插件将文件上传到服务器。这样,我可以在html端使用base64编码的图像,同时也可以上传。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 $scope.captureImage = function() {
            navigator.camera.getPicture(cameraSuccess, cameraError, {
                destinationType: Camera.DestinationType.DATA_URL,
                correctOrientation: true
            });
        }

        var cameraSuccess = function(imageData) {
            $scope.profileImageSource = imageData;
            $scope.changeImage = function(base64Data, contentType) {
                contentType = contentType || '';
                var sliceSize = 512;
                var byteCharacters = atob(base64Data);
                var bytesLength = byteCharacters.length;
                var slicesCount = Math.ceil(bytesLength / sliceSize);
                var byteArrays = new Array(slicesCount);

                for (var sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) {
                    var begin = sliceIndex * sliceSize;
                    var end = Math.min(begin + sliceSize, bytesLength);

                    var bytes = new Array(end - begin);
                    for (var offset = begin, i = 0; offset < end; ++i, ++offset) {
                        bytes[i] = byteCharacters[offset].charCodeAt(0);
                    }
                    byteArrays[sliceIndex] = new Uint8Array(bytes);
                }
                return new Blob(byteArrays, {
                    type: contentType
                });
            }

            $scope.picture = $scope.changeImage(imageData, 'image/png');
            $scope.$digest();
        }

HTML:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<img ng-src="data:image/gif;base64,{{profileImageSource}}">
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33541927

复制
相关文章
如何在VimVi中显示行号
Vim/Vi是许多软件开发人员和Linux系统管理员首选的文本编辑器。 默认情况下,Vim不显示行号,但可以轻松打开它们。Vim支持三种行编号模式,可帮助你浏览文件。除了标准的绝对行编号之外,Vim还支持相对行和混合行编号模式。 绝对行号 绝对行号是标准行号,它在每行文本旁边显示适当的行号。 要激活行编号,请设置数字标志: 按Esc键切换到命令模式。 按:(冒号),光标将移动到屏幕的左下角。输入set number或set nu,然后按Enter。 :set number 行号将显示在屏幕的左侧: 要禁用
入门笔记
2022/06/02
3.6K0
使用Visio Viewer载入数据库中的Visio图
需求很简单,在SQL Server数据库中存放用户上传的Visio文件,然后使用Visio Viewer在IE中直接显示用户上传的Visio文件的内容。
深蓝studyzy
2022/06/16
1.1K0
使用Visio Viewer载入数据库中的Visio图
数组或对象中的内容间隔显示
总结:间隔显示,不要使用for 循环,原因是for循环是同步,setTimeout是异步,同步执行完再执行异步。
tianyawhl
2019/11/07
4.3K0
商业PoE网络中的关键IT设备
在当今商业环境中,稳定高效的网络基础设施至关重要。以太网供电(PoE)技术因其能够通过单根网线同时传输数据和电源,已成为现代企业网络的核心。其不仅简化了安装过程,降低了成本,还提升了网络部署的灵活性。如果您计划搭建或升级商业PoE网络,了解所需的关键设备至关重要。本文将为您介绍商业PoE网络必备的IT设备。
通信产品推荐官
2025/03/24
720
商业PoE网络中的关键IT设备
如何在js中创建对象
七夕临近了,没有对象的来创建一个吧 使用对象字面量: const o = { name: "zehan", greeting() { return `Hi, 我是${this.name}`; } }; o.greeting(); // "Hi, zehan" 使用构造函数: function Person(name) { this.name = name; } Person.prototype.greeting = function () { return `Hi, 我是
ZEHAN
2020/09/23
7.6K0
如何在 JavaScript 中克隆对象
JavaScript 处理对对象的赋值的方式与处理基本值的方式不同。它不是保存值,而是使用指向内存中值的指针。
泽霖
2023/11/12
2340
金融科技的「背面」
当金融科技的发展进入到全新的发展阶段,仅仅只是按照传统意义上的平台逻辑,业已无法获得长久的发展。单单看看玩家们对于金融科技新模式的探索,我们就可以看出一些端倪。如果对玩家们的金融科技新模式的探索进行一个总结的话,回归实体和产业,无疑是一个重要方面。
孟永辉
2022/11/16
4210
金融科技的「背面」
如何在Openharmony中实现USB复合设备
如何让Openharmony设备HDC接口(OTG接口)作为一个复合设备,实现HDC(HDC:鸿蒙设备连接器) + CDC ACM(USB 虚拟串口),而设备本身支持HDC。所以需要增加CDC ACM(USB 虚拟串口)。
Rice加饭
2024/06/06
4170
如何在Openharmony中实现USB复合设备
如何在iPhone设备中查看崩溃日志
本文介绍了如何在iPhone设备中查看崩溃日志,以便调查崩溃的原因。我们将展示三种不同的方法,包括使用克魔助手查看崩溃日志。
iOS Magician
2024/01/03
4860
如何在iPhone设备中查看崩溃日志
《嵌入式设备端的网络报文在wireshark显示》-- 应用
摘要 前面一篇文章把整个SP2WS工具的原理描述了,这一篇来描述这个操作怎么玩。 应用说明 这个工具提供了两条命令,可以同时对wifi模块和主控进行监控 对于wifi模块端命令: 参数-com[port_num]:wifi模块端对应的调试串口 参数-wifi_slave:wifi模块端对应的管道名字 SP2WS.py com[port_num] wifi_slave 例如: SP2WS.py com1 wifi_slave 对于主控端命令: 参数-com[port_num]:主端对应的调试串口 参数-
Rice加饭
2022/05/10
2380
《嵌入式设备端的网络报文在wireshark显示》-- 应用
Confluence 如何在页面中显示目录
在默认情况下,Confluence 是不能在页面中显示目录和当前页面中的内容导航的。
HoneyMoose
2021/12/14
2K0
Discourse 如何在首页中显示 Box 的子分类
如果你不选择上门的选项的话,下面的列表是不会显示的,你可以通过这个自行确定如何显示子项目。
HoneyMoose
2020/05/30
2.1K0
Discourse 如何在首页中显示 Box 的子分类
Confluence 如何在页面中显示目录
在默认情况下,Confluence 是不能在页面中显示目录和当前页面中的内容导航的。
HoneyMoose
2022/01/11
2.5K0
Confluence 如何在页面中显示目录
如何在Java中判断对象的真正“死亡”
在Java编程中,对象的生命周期管理是一项重要的任务。当对象不再被使用时,及时释放其占用的内存资源是一个有效的优化手段。而为了准确地判断对象是否真正“死亡”,我们需要理解Java的垃圾回收机制以及对象的引用关系。本文将详细介绍在Java中如何判断对象的真正“死亡”,并提供一些实例来帮助读者更好地理解。
疯狂的KK
2023/07/02
1920
如何在Java中判断对象的真正“死亡”
如何在 JS 中“深冻结”对象?
1.如果咱们想要确保对象被深冻结,就必须创建一个递归函数来冻结对象类型的每个属性:
程序狗
2021/09/15
1.7K0
金融科技洗牌的背面
金融科技并未像互联网玩家们所预想的那个方向发展,而是朝着另外一个方向迈进。按照互联网玩家们对于它的规划,所谓的金融科技应当成为互联网玩家将自身利益最大化的工具和手段。因为无论是从互联网的角度来看,还是从金融的角度来讲,两者都具备与人们的生产和生活深度融合的特质,而将两者结合在一起,无疑可以实现「躺赚」的终极目的。
孟永辉
2022/06/27
2570
金融科技洗牌的背面
背面入射的光栅耦合器
这篇笔记分享一篇光栅耦合器的最新进展,IMEC与Ghent大学的研究小组在硅光芯片背面加工出微透镜(microlens), 将光场的MFD提高到32um, 其1dB的对准容差可以提高到±7um,为硅光
光学小豆芽
2021/03/15
1.2K0
背面入射的光栅耦合器
Linux小技巧:如何在 Vim 中显示行号?
Vim 是一款出色的编辑器,大多数 Linux/UNIX 系统管理员每天都喜欢并使用它。
网络技术联盟站
2022/03/02
11.5K0
Linux小技巧:如何在 Vim 中显示行号?
如何在有限资源设备上部署深度网络(下)
近年来,深度神经网络模型在计算机视觉识别、语音识别、自然语言处理等领域取得了巨大的成功。但是受限于较高的计算复杂度和较大的存储需求,深度模型的部署在有限资源设备上面临着诸多挑战,因此相继出现了各种模型压缩和加速技术。其中知识蒸馏是一种典型的方法,它能从一个大的教师模型中学习到一个小的学生模型,受到了工业界和学术界的广泛关注。
绿盟科技研究通讯
2023/12/18
2360
如何在有限资源设备上部署深度网络(下)
如何在有限资源设备上部署深度网络(上)
近年来,深度神经网络模型在计算机视觉识别、语音识别、自然语言处理等领域取得了巨大的成功。但是受限于较高的计算复杂度和较大的存储需求,深度模型的部署在有限资源设备上面临着诸多挑战,因此相继出现了各种模型压缩和加速技术。其中知识蒸馏是一种典型的方法,它能从一个大的教师模型中学习到一个小的学生模型,受到了工业界和学术界的广泛关注。
绿盟科技研究通讯
2023/11/27
2220
如何在有限资源设备上部署深度网络(上)

相似问题

如何在Visio中映射网络?

30

Visio网络布线模板

30

网络图,替代Visio

60

免费的,基于网络的替代Visio?

20

如何在网络上查找静态IP和MAC地址(或拒绝任何请求(如ping)的设备)

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文