怎么把人物图P到表情图并且做成动图~

本文是一篇Photoshop教程,详细介绍了如何将人物照片移植到表情图上并制作成动图。步骤包括:用PS消除原表情图的人物,调整朋友照片的色彩,将朋友的脸移动到表情图上,调整大小和位置,然后通过时光轴功能制作成帧动画,最后保存为Web所用格式的动图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

好吧,最近觉得学会PS是一项很重要的技能,于是,看到朋友把朋友P成了表情,无比逗比,先学了这个~,记录一下。

工具/原料

  1. 电脑
  2. ps cs6
  3. 表情
  4. 朋友照片(要有全脸,最好表情也能让人醉了。)

方法/步骤

1、打开ps软件,在“文件”选项中分别打开自己挑选的金馆长的照片和朋友的照片,这里朋友的照片我用的金馆长的原版照片代替的,也好在结束时看看差异。
这里写图片描述
2、这一步主要是把挑选出的金馆长的脸消去,留下空白放朋友的脸。首先用吸管工具吸取脸上空白处的颜色,用套索工具选中脸部区域,按shift+f5,弹出填充对话框,在内容中选择前景色,点击确定。可以看见,选中区中脸消失了。再在“选择”选项中点击取消选区,便最终呈现出金馆长的处理图。
这里写图片描述
3.1调到朋友的照片,点击选项”图像“-”调整”-“去色”,将照片变成黑白色的。再点击选项”图像“-”调整”-“亮度/对比度“,弹出对话框,适当调高亮度和对比度,具体数值是没有,只要五官清晰呈现出来,脸部变白就可以了,一次不够可多调几次。调完后可用加深工具把五官颜色加深一下。(加深工具、减淡工具、海绵工具在一个区域,在左边找不到的话,可参考图中位置,在软件相应位置单击右键,就会出来了。)

3.2==》方法2:
a.打开你朋友的照片,按住Ctrl+Shit+U将图片去色。有可以执行图像>调整>去色。
b.复制一层朋友的头像图层,然后按住Ctrl+I,反向。也执行图像>调整>反相。将图层的混合模式改为划分。
c.同时选中这两个图层,然后按住Ctrl+E合并图层,也可以右击,点合并图层的。
=====>方法2细节会丢失太多,用方法1适当去调节,保留更多细节。

4、第三步使用方法2的话,直接选择移动,选择方法1的话,点击选项”图像“-”调整”-“色调分离”弹出对话框。在色阶一栏中调整数字,直到觉得图片合适为止,我一般用4到8之间。再用套索工具,选中朋友的脸,换成移动工具点击选中区域,拖动到金馆长的图片文件中,朋友的图片可以关闭了。
这里写图片描述
5、按Ctrl+t键,调整朋友脸的大小位置角度,到金馆长脸的空白区域,直到合适后,双击图片,完成!
这里写图片描述
因为目前都是白色,不需要调节,实际增加一个,将拖过来的图层的混合模式变成正片叠底就好了。修饰一下边缘。(用橡皮擦)
6、到这里就基本上完成了,只要再保存成表情图片就行了.

制作动图

参考链接:http://jingyan.baidu.com/album/f3e34a12a80ac2f5eb653599.html?picindex=12
1、在Photoshop中打开自己想要处理的图片,这里我以四张图片为例,在Photoshop中打开这四张图片
2、将这四张图片移至一张图片上,也就是将其他三张图片移至另一张图片上
方法:

1、把要放一起的图片都打开;
2、用移动工具把图片拖到同一个文件里,会形成N个图层;
3、在层里,用CTRL+T调整大小;
4、用移动工具放到合适的位置。
5、OK

3、点击窗口,选择打开时光轴,如图所示
这里写图片描述
4、然后点击页面下方的创建时光轴

5、点击页面左下角的如图所示按钮将其转换为帧动画,这样方便操作一些
这里写图片描述
或者在上个界面创建时光轴时候,选择创建帧动画。
这里写图片描述
6、点击如图所示按钮复制所选帧,由于我们有三张图片,因此我们复制出三个图片帧
这里写图片描述
7、然后我们将三个图片帧的时间统一设置成0.5秒,具体多少秒可以自己定义
8、并将循环次数设置成永远,这样图片就能无限循环下去
这里写图片描述
9、然后我们鼠标点击第一个图片帧,将其图层显示为一张图片
这里写图片描述
==注意,第几个图片对应哪个图层就把哪个图层前面保留成眼睛样式,其他事正方形的。
10、然后点击第二个图片,将其图层显示为另一个图片,如图所示。其余的也是类似这样操作
11、设置好后,我们点击文件,将其储存为web所用格式
这里写图片描述
12、然后点击保存就行啦

### Android 中多张片合成 GIF 的实现方式 在 Android 开发中,可以通过多种方式将多张静态片合成为一张动态 GIF 片。以下是基于现有引用内容以及专业知识的详细介绍。 #### 使用 AnimatedGifEncoder 类 `AnimatedGifEncoder` 是一种常用的工具类,用于将多个 Bitmap 对象编码为 GIF 文件并保存到本地存储设备上。此方法需要逐帧添加像数据,并设置每帧之间的延迟时间。具体实现如下: ```java import java.io.File; import java.io.FileOutputStream; public class GifCreator { private AnimatedGifEncoder encoder; // 引入 AnimatedGifEncoder 工具类[^2] public void createGif(String outputPath, List<Bitmap> frames, int delayMillis) throws IOException { File outputFile = new File(outputPath); FileOutputStream fos = new FileOutputStream(outputFile); try { encoder = new AnimatedGifEncoder(); encoder.setRepeat(0); // 设置循环次数,0 表示无限循环 encoder.setDelay(delayMillis); // 延迟时间单位毫秒 encoder.start(fos); for (Bitmap frame : frames) { // 遍历每一帧片 encoder.addFrame(frame); // 添加单帧画面[^1] } encoder.finish(); // 完成编码过程 } finally { fos.close(); } } } ``` 上述代码展示了如何通过 `AnimatedGifEncoder` 将一系列位对象转换为 GIF 文件。需要注意的是,在实际项目开发过程中可能还需要引入第三方库来支持该功能,比如 Glide 或者其他开源框架。 #### 利用 Bilibili 提供的 BurstLinker 库 除了手动操作外,还可以借助现成解决方案简化工作流程。例如 bilibili 推荐使用的 [BurstLinker](https://github.com/bilibili/BurstLinker)[^3] ,它是一个专门针对批量处理片资源而设计的轻量级 Java 库。下面给出一段简单的例子说明其基本用法: ```java // 初始化参数配置 List<String> imagePaths = Arrays.asList("/path/to/image1.png", "/path/to/image2.png"); String outputFilePath = Environment.getExternalStorageDirectory().getPath() + "/output.gif"; int durationPerFrameMs = 500; try{ // 调用 API 方法完成任务 BurstLinker.build() .setImages(imagePaths) .setOutPutPath(outputFilePath) .setDuration(durationPerFrameMs) .executeSync(); }catch(Exception e){ Log.e("Error","Failed to generate gif.",e); } ``` 这里我们只需要准备好输入源路径列表(可以是网络链接或者本地文件地址),指定目标输出位置与播放速度即可调用相应接口执行整个制作环节。相比起自己编写底层逻辑来说更加便捷高效。 #### 注意事项 - **性能优化**: 当涉及大量高分辨率素材时可能会占用较多内存空间甚至引发 OOM 错误 。因此建议适当调整压缩级别减少体积大小的同时也要兼顾画质表现效果。 - **权限管理**: 如果计划访问外部储存器,则务必记得申请 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE 权限以便顺利读写所需资料。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值