用ps怎么做放大镜在字上或图片上走过效果?

html-css08

用ps怎么做放大镜在字上或图片上走过效果?,第1张

具体步骤如下:(纯属原创,请注明出处)

1:新建背景图层,填充色为白色;

2:选用横排文字工具,输入自己喜欢的文字如(我是齐天大圣孙悟空),调整到合适大小(较大,我选的是280号),栅格化文字。

3:ctrl+E合并图层,并复制,命名为图层1 。

4:shift+ctrl+N 新建图层2,选用横排文字工具,输入与图层一相同文字(我是齐天大圣孙悟空),ctrl+T调整大小(较小大概是72号),使得图层2与图层1中对应的字大概在一个位置。

5:shift+ctrl+N 新建图层3,选择圆形选框工具,建立区域。

6:ctrl+T调整选取位置及大小,保证可以完全覆盖住图层1中的单个字体;

7:选取图层3 ,给选区内填充背景色白色。

8:双击图层3缩略图,设置填充不透明度为0,挖空为 深,其他不变,确定:

9:给图层三创建组(ctrl+G),对图层三调整。ctrl+T,用键盘上的上下左右键调整,大概就是右移4-5个单位,确定。

10:按住shift+ALT+CTRL+T重复第九步操作并复制新图层,知道最后一个字看不到。

11:对图层三的组中的没一张图片进行滤镜——扭曲——球面化 根据实际情况自己调整;

11:选择窗口——动画。每一帧就是图层三组中的每一幅图片。点击播放,效果就会出来了。

12:最重要的一步!!!点击文件——存储为web和设备所用格式 存储为GIF格式。

一张动态的,放大镜时的图片就完成了 希望对大家有用

    1、给body添加背景图,在body中添加一个父盒子(父盒子开启绝对定位),父盒子中再添加一个子盒子。

    2、给window添加鼠标移动事件,根据鼠标在浏览器中的坐标(clientX和clientY)修改父盒子的top和left,以达到移动镜面的效果。

    3、给子盒子添加背景图(和body背景图一致),在window的鼠标移动事件中修改子盒子的样式——background-position,改变子盒子中的背景图在盒子中的显示位置,使背景图的显示与body一致。

    4、再给子盒子添加缩放(transform:scale(2)),即可实现放大功能。

    1、由于背景图无法设置透明度,所以使用body的伪元素,给伪元素添加背景图和opacity属性。

    2、这时虽然给背景设置上了透明的,但却是发白的那种透明,要想变成暗沉的透明,只需要给body添加背景颜色就行。

    3、background-position的使用,由于是要将背景的选中位置移动到盒子的中心,所以使用的是负值。

<!DOCTYPE html>

<html lang="en">

<head>

  <meta charset="UTF-8">

  <meta http-equiv="X-UA-Compatible" content="IE=edge">

  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <title>Document</title>

  <style>

    body {

      padding: 0

      background-color: #000

      margin: 0

    }

    body::after{

      display: block

      position: absolute

      top: 0

      left: 0

      content: ''

      width: 100%

      height: 100%

      background-image: url('伊芙琳.jpg')

      background-position: 0px 0px

      background-size: 100% auto

      opacity: 0.1

    }

    .magnifier {

      width: 300px

      height: 300px

      background-image: url('伊芙琳.jpg')

      background-size: 1730px auto

      background-position: 0px 0px

      transform: scale(2)

      margin: 0

      position: relative

      z-index: 100

    }

    .main {

      width: 300px

      height: 300px

      border-radius: 50%

      overflow: hidden

      position: absolute

    }

  </style>

</head>

<body>

  <div class="main">

    <div class="magnifier"></div>

  </div>

  <script>

    let flag = true

    let magnifier = document.getElementsByClassName('magnifier')[0]

    let main = document.getElementsByClassName('main')[0]

    let boxLeft = 0

    let boxTop = 0

    window.onmousemove = (event) => {

      if(!flag) return

      setTimeout( ()=>{

          flag = true

      },50)

      console.log(event.clientX, event.clientY)

      if(event.clientX > 1590) {

        event.clientX = 1590 

      }

      boxLeft =  event.clientX > 1590 ? '1440px' : event.clientX > 150 ? event.clientX - 150 + 'px':'0px'

      boxTop = event.clientY > 720 ? '575px' : event.clientY > 150 ? event.clientY - 150 + 'px':'0px'

      main.style.left = boxLeft

      main.style.top = boxTop

      // magnifier.style.backgroundPosition = '830px 570px'

      magnifier.style.backgroundPosition = '-' + boxLeft + ' ' + '-' + boxTop

      flag = false

    }

  </script>

</body>

</html>

需要用遮罩层制作两个影片剪辑,给你个思路:

1

第一个图层写出你要放大的文字,新建图层,画一个矩形,这个矩形中间挖一个圆--圆的大小和放大镜镜片必须一致。无论这个圆移动到文字最左边或是最右边,这个矩形都能把文字遮完。也就是说这个矩形比较长。

2

新建图层,写入已经放大的文字。可以将第一图层的文字复制后变形放大。摆放位置和第一图层文字的X、Y坐标一样,因为此文字是放大后效果,文字总长度肯定比第一图层的要长,也高些。然后新建图层,画一个圆,这个圆和第二图层矩形的圆必须一样,而且放的位置就是矩形挖去后的圆位置。再新建图层,画一个放大镜边框,和上一图层的圆要组合好,看上去就是一个放大镜。

3

一切准备就绪,开始制作放大动画。此时锁定两个文字图层(放大前和放大后的),在第一帧选择其他所有图层,创建补间动画,动画长度根据个人喜好而定,想放大镜移动慢,就多些帧,想移动快点,动画帧数就少点。

4

动画制作好后最关键的来了,选中图层二,此时不是在舞台上选,而是点击图层名字,右键弹出菜单选“遮罩层”,下面的图层(图层一)会自动成为被遮罩层。同理选中第四层--镜片图层,右键选择“遮罩层”,下面的图层--放大后的文字图层自动成为被遮罩层。

测试动画,一个放大镜效果flash制作完成。