整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

硬件级实时背景虚化 红米Pro拍照专项评测

DOSPY论坛 智玩部落评测组】7月底,小米正式发布了旗下红米系列最新机型红米Pro,定位于旗舰级别。而作为该机最大的亮点之一,红米Pro采用了当 下非常火爆的双摄像头设计。这无疑引起很多人的兴趣,而雷军更是表示使用红米Pro拍照,“世界仿佛一首诗。”那么这款首次搭载双镜头的红米Pro在拍照 表现上如何呢?下面跟随灵大大一起来看看吧。

DOSPY论坛链接:http://bbs.dospy.com/thread-17741139-1-1002-1.html

说到双摄像头设计,现如今市场中已经有不少产品以此作为卖点。本次红米Pro所搭载的双摄像头也与大多数双摄产品相同,由一个主摄像头以及一个景深摄像头组 成;而考虑到用户拍照时更为常用的双手横握手机的方式,红米Pro机身背部的双摄像头呈竖向排列(两颗镜头中间为双LED闪光灯),并精心调节了双摄间的 距离,使其拥有类似人类双眼的三角定位能力,通过主摄像头和辅助定位摄像头同时工作能够瞬间识别画面中所有景物的景深信息,实现拍摄具有空间信息的照片。

配置上,红米Pro所搭载的主摄像头为1300万像素,采用索尼IMX 258传感器;而景深摄像头则为500万像素,采用的是三星的传感器;两枚摄像头光圈均为F/2.0,此外该机支持硬件级背景虚化,在拍照时虚化效果会实 时显示在屏幕中,方便用户根据其对拍摄进行调节。

拍照界面依旧延续了此前的风格,上手十分轻松。在模式上,提供了包括全景、手动、夜景等多种,足以满足我们的日常使用,此外还有多达18款滤镜供选择,增强了相机的可玩性。

在大家最关心的双摄功能上,红米Pro与大多数双摄机型相同,默认不会开启;我们从拍照界面<模式选择>的上方可以看到控制双摄模式的按钮,开启后左右滑动可以调节光圈小大,红米Pro的光圈可在F/0.95-F/5.6范围内进行11档的调节。

灵大大分别用F/0.95、F/3.2和F/5.6这三个光圈值拍摄了样张进行对比,需要说明的是,官方建议在拍摄时将对焦物体放置在1M到1.5M左右进行拍摄,如果距离被摄主体太近导致主摄像头记录的场景会被虚化掉,造成无法对焦。

F/0.95

F/3.2

F/5.6

F/0.95

F/3.2

F/5.6

在实际的拍摄中,对焦速度表现尚可;而通过样张可以明显看出,红米Pro对于背景的虚化表现还是不错的,层次感很鲜明;但是照片呈现出严重的涂抹感,特别是在F/0.95光圈下,主体以及背景之间的过度非常生硬,显得很不自然。这对于一款双摄手机来说还有待提高。

红米Pro在主摄像头方面采用了1300万像素的索尼IMX258传感器,对焦速度还是令人满意的,那么成像质量如何呢?我们一起来看看样张。

通过样张可以看出,在光线不错的条件下,红米Pro所拍摄的照片锐度表现出色,不过整体的饱和度略低,相比肉眼所见在艳丽的程度上会有一些不足;此外白平衡会有发飘的情况出现,部分样张的色调偏冷亮度偏暗。

微距状态下,得益于F/2.0大光圈,红米Pro的表现还是十分出色的;景深效果出色,对于背景的虚化十分到位,主体与背景层次感鲜明。

在夜间拍摄上,红米Pro对于噪点的把控还算不错,光线不足时解析力仍保持了正常的水准;但是对于眩光的控制还需要提高。不过夜间拍摄一向是对手机的一大考验,对于红米Pro来说其表现还算令人满意。

通过实际的拍照体验,红米Pro的主摄像头表现还算中规中矩;然而作为主打特点之一,该机的双摄效果却显得有些不尽如人意,特别是严重的涂抹感使照片变得不 真实。这也让其双摄像头显得更形式化,而在效果上却没有明细提升。对于红米Pro所谓的“刀锐奶化”的背景虚化能力,还需要进一步提高才是。

=======================================================================

vue3.x越来越稳定及vite2.0的快速迭代推出,加上很多大厂相继推出了vue3的UI组件库,在2021年必然受到开发者的再一次热捧。

Vue3迭代更新频繁,目前star高达20.2K+

// 官网地址
https://v3.vuejs.org/

Vitejs目前的star达到15.7K+

// 官网地址
https://vitejs.dev/

项目介绍

vue3-webchat 基于vue3.x+vuex4+vue-router4+element-plus+v3layer+v3scroll等技术架构的仿微信PC端界面聊天实例。

以上是仿制微信界面聊天效果,同样也支持QQ皮肤。

技术栈

  • 使用技术:vue3.0+vuex4+vue-router4
  • UI组件库:element-plus(饿了么Vue3 pc端组件库)
  • 弹窗组件:V3Layer(基于Vue3自定义桌面端弹窗)
  • 滚动条组件:V3Scroll(基于Vue3自定义虚拟美化滚动条)
  • iconfont图标:阿里字体图标库

Vue3.x自定义弹窗组件

大家看到的所有弹窗功能,均是自己开发的vue3.0自定义弹窗V3Layer组件。

前段时间有过一篇详细的分享,这里就不作介绍了。感兴趣的话可以去看看。

vue3.0系列:Vue3自定义PC端弹窗组件V3Layer

Vue3.x自定义美化滚动条组件

为了使得项目效果一致,所有页面的滚动条均是采用vue3.0自定义组件实现。

v3scroll 一款轻量级的pc桌面端模拟滚动条组件。支持是否原生滚动条、自动隐藏、滚动条大小/层叠/颜色等功能。

大家感兴趣的话,可以去看看这篇分享。

Vue3.0系列:vue3定制美化滚动条组件v3scroll

vue.config.js项目配置

/**
 * Vue3.0项目配置
 */

const path = require('path')

module.exports = {
    // 基本路径
    // publicPath: '/',

    // 输出文件目录
    // outputDir: 'dist',

    // assetsDir: '',

    // 环境配置
    devServer: {
        // host: 'localhost',
        // port: 8080,
        // 是否开启https
        https: false,
        // 编译完是否打开网页
        open: false,
        
        // 代理配置
        // proxy: {
        //     '^/api': {
        //         target: '<url>',
        //         ws: true,
        //         changeOrigin: true
        //     },
        //     '^/foo': {
        //         target: '<other_url>'
        //     }
        // }
    },

    // webpack配置
    chainWebpack: config => {
        // 配置路径别名
        config.resolve.alias
            .set('@', path.join(__dirname, 'src'))
            .set('@assets', path.join(__dirname, 'src/assets'))
            .set('@components', path.join(__dirname, 'src/components'))
            .set('@layouts', path.join(__dirname, 'src/layouts'))
            .set('@views', path.join(__dirname, 'src/views'))
    }
}

Vue3引入/注册公共组件

// 引入饿了么ElementPlus组件库
import ElementPlus from 'element-plus'
import 'element-plus/lib/theme-chalk/index.css'

// 引入vue3弹窗组件v3layer
import V3Layer from '../components/v3layer'

// 引入vue3滚动条组件v3scroll
import V3Scroll from '@components/v3scroll'

// 引入公共组件
import WinBar from '../layouts/winbar.vue'
import SideBar from '../layouts/sidebar'
import Middle from '../layouts/middle'

import Utils from './utils'

const Plugins = app => {
    app.use(ElementPlus)
    app.use(V3Layer)
    app.use(V3Scroll)

    // 注册公共组件
    app.component('WinBar', WinBar)
    app.component('SideBar', SideBar)
    app.component('Middle', Middle)

    app.provide('utils', Utils)
}

export default Plugins

项目中主面板毛玻璃效果(虚化背景)

<!-- //虚化背景(毛玻璃) -->
<div class="vui__bgblur">
    <svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="100%" class="blur-svg" viewBox="0 0 1920 875" preserveAspectRatio="none">
    <filter id="blur_mkvvpnf"><feGaussianBlur in="SourceGraphic" stdDeviation="50"></feGaussianBlur></filter>
    <image :xlink:href="store.state.skin" x="0" y="0" width="100%" height="100%" externalResourcesRequired="true" xmlns:xlink="http://www.w3.org/1999/xlink" style="filter:url(#blur_mkvvpnf)" preserveAspectRatio="none"></image>
    </svg>
    <div class="blur-cover"></div>
</div>

Vue3拦截登录状态

vue3.0中使用全局路由钩子拦截登录状态。

router.beforeEach((to, from, next) => {
    const token = store.state.token

    // 判断当前路由地址是否需要登录权限
    if(to.meta.requireAuth) {
        if(token) {
            next()
        }else {
            // 未登录授权
            V3Layer({
                content: '还未登录授权!', position: 'top', layerStyle: 'background:#fa5151', time: 2,
                onEnd: () => {
                    next({ path: '/login' })
                }
            })
        }
    }else {
        next()
    }
})

Vue3.x聊天模块

如上图:聊天编辑框部分支持文字+emoj表情、在光标处插入表情、多行文本内容。

编辑器抽离了一个公共的Editor.vue组件。

<template>
    <div
        ref="editorRef"
        class="editor"
        contentEditable="true"
        v-html="editorText"
        @click="handleClick"
        @input="handleInput"
        @focus="handleFocus"
        @blur="handleBlur"
        style="user-select:text;-webkit-user-select:text;">
    </div>
</template>

另外还支持粘贴截图发送,通过监听paste事件,判断是否是图片类型,从而发送截图。

editorRef.value.addEventListener('paste', function(e) {
    let cbd = e.clipboardData
    let ua = window.navigator.userAgent
    if(!(e.clipboardData && e.clipboardData.items)) return

    if(cbd.items && cbd.items.length === 2 && cbd.items[0].kind === "string" && cbd.items[1].kind === "file" &&
        cbd.types && cbd.types.length === 2 && cbd.types[0] === "text/plain" && cbd.types[1] === "Files" &&
        ua.match(/Macintosh/i) && Number(ua.match(/Chrome\/(\d{2})/i)[1]) < 49){
        return;
    }
    for(var i = 0; i < cbd.items.length; i++) {
        var item = cbd.items[i]
        // console.log(item)
        // console.log(item.kind)
        if(item.kind == 'file') {
            var blob = item.getAsFile()
            if(blob.size === 0) return
            // 读取图片记录
            var reader = new FileReader()
            reader.readAsDataURL(blob)
            reader.onload = function() {
                var _img = this.result

                // 返回图片给父组件
                emit('pasteFn', _img)
            }
        }
    }
})

还支持拖拽图片至聊天区域进行发送。

<div class="ntMain__cont" @dragenter="handleDragEnter" @dragover="handleDragOver" @drop="handleDrop">
    // ...
</div>
const handleDragEnter = (e) => {
    e.stopPropagation()
    e.preventDefault()
}
const handleDragOver = (e) => {
    e.stopPropagation()
    e.preventDefault()
}
const handleDrop = (e) => {
    e.stopPropagation()
    e.preventDefault()
    // console.log(e.dataTransfer)

    handleFileList(e.dataTransfer)
}
// 获取拖拽文件列表
const handleFileList = (filelist) => {
    let files = filelist.files
    if(files.length >= 2) {
        v3layer.message({icon: 'error', content: '暂时支持拖拽一张图片', shade: true, layerStyle: {background:'#ffefe6',color:'#ff3838'}})
        return false
    }
    for(let i = 0; i < files.length; i++) {
        if(files[i].type != '') {
            handleFileAdd(files[i])
        }else {
            v3layer.message({icon: 'error', content: '目前不支持文件夹拖拽功能', shade: true, layerStyle: {background:'#ffefe6',color:'#ff3838'}})
        }
    }
}

大家如果感兴趣可以自己去试试哈。

ok,基于vue3+element-plus开发仿微信/QQ聊天实战项目就分享到这里。

基于vue3.0+vant3移动端聊天实战|vue3聊天模板实例

思航提问:

叶老师您好,为什么现在手机摄像头的光圈都很大,就像前两天发布的iphone7,光圈达到f/1.8,但是还是无法拍出像单反那样的虚化程度,是因为除了光圈,还跟手机镜头大部分是广角的原因有关吗?

叶梓摄影 使用诺基亚1020手机(小景深范例)

叶梓老师回答:

陈思航这个问题问得很好,确实也跟焦距有一定的关系。我们这么来解释这个问题,不管是单反相机还是微单相机,它们都好像有一种特异功能可以把背景拍得非常非常非常模糊,而同时前景的物体也就是在你对焦的那个目标和相机之间的其他物体也会变得非常非常的模糊。这个模糊程度是显而易见的,是很夸张的。这种效果能让我们的画面变得比较简洁,又有虚实对比,有质感对比。而且它跟眼睛一样一次只看清一个地方,所以它深受大家的欢迎,我们用一个词来形容这种效果,叫做景深。

景深这两个字,你可以把它简单地理解为清晰的景物的深度或者说是清晰的景物的距离,清晰的景物的范围。比如说你在拍摄一个场景的时候,2米处那棵树和3米处那棵树都是清楚的,这个景深范围为1米,是从2米到3米的范围内。 如果在你的镜头前2米处的树是清楚的,100米处的树也是清楚的。那么现在你拍到了景深范围的是98米,是一个大景深。如果你拍到的只有5米处的那一棵树是清楚的,它前前后后的时候都非常非常模糊,那么这就是很小的景深了,或许只有十几厘米的范围。有了这个专业名词以后我们就方便很多,小景深就是指前后景都模糊的,大景深就是前后景都不模糊的或者说是前后景都清楚的。

那么小景深的照片,也就是说背景和前景都模糊的这种照片到底要怎么样拍出来呢?它跟三个值都有关系,第一个是大光圈,第二个长焦距,第三个近距离。大光圈好理解,我们的相机镜头有的光圈很大,f/2.0的、f/1.4等等。这种镜头拍出来的画面景深可以非常小,背景模糊得很厉害。但是我们手机也有大光圈,为什么它拍出来的背景的模糊程度就不明显,景深就不会那么小呢?那是因为它满足不了第二个条件。

小景深的第二个条件是长焦距,单反相机或者微单相机都有长焦镜头。用长焦镜头的时候,背景和前景都模糊得很厉害,但手机都是广角镜头,这样一来,用手机拍照的时候,背景的模糊效果就不明显了。

第三个要素是距离,就是说你拍的那个物体离你的相机或手机距离越近的话, 它的景深越小。也就是说越近的话,背景和前景就越模糊。这个手机很容易做到,手机能贴一个物体很近拍照,但相机就不一定做的到,如果相机没有微距镜头的话,贴的太近是对不上焦的。所以手机虽然没有第二个条件,没有长焦距,但是它可以贴的很近来拍摄。

举一个例子,上面这张照片是我用诺基亚1020手机,就是那台传说中的四千万像素的手机拍摄的照片。你可以看到这个画面中前面挡着的花非常模糊,背后的树和房子也非常模糊。我没有用软件去处理,也没有加什么特殊的附加镜头,就是用手机直接拍摄的。怎么样可以拍出这种景深小的背景前景效果照片呢?就是要贴得近。因为对于手机来讲,光圈肯定是大光圈,却没长焦距。所以剩下的那个就是关键就是一定要贴近拍摄。拍照时,我离那朵小花大概是7、8厘米的距离, 所以手机不是不能拍出小景深的照片来,因为它有大光圈也能做到近距离。

陈思航同学说的其实也没错,手机没有长焦距,所以它做不到像相机那么严重的背景和前景的模糊,它做不到相机那么小的景深。不过聊胜于无,它至少能拍出这种效果来,我们还是可以试一下。

请大家一会听完我们的早自习就试验一下,你要做的其实很简单,请在你的面前立一个物体。它可以是一支笔也可以是一个塑料水瓶子,可以是你的工牌或者是身份证等等任何东西。但请注意这一件物体得离你的手机要尽量的近, 同事在你拍摄的画面里还要能看到一些背景。这个背景要离你的拍摄对象有一定距离。比如说你拿身份证放在手机前,对着身份证对焦,身份证后面一定要远远的有一个背景,你千万别把身份证放到桌上拍,因为那样没有背景可言。桌面怎能说是这个身份证的背景呢,它和身份证跟手机的距离是一样的。你可以把身份证立起来抓在手上,对好焦,对在身份证上,身份证离手机10厘米以内。接下来你只需要拿一只手指头去按屏幕,让你的手机把焦点对在你的身份证上。然后拍下照片,再观察画面里远远的那个背景,你看看是不是模糊得很厉害的。现在就做,只需要实践一次,相信大家都会记得非常牢靠了。

注:以上文字由小编整理自叶梓老师录制的语音。

摄影问题免费解答、加入摄影群学习,请添加叶梓老师微信:leonyee3(暗号:头条)。

打开微信,搜索公众号:摄影早自习,每天早上6:30,不见不散。

原文链接:

http://www.katoclass.com/zaozixi20160910.html