【PS练习】幻影坦克

我们准备两张大小一样的照图片,一张菠萝吹雪的图片,一张耿鬼的图片,我们要让缩略图显示菠萝吹雪,而点开之后显示耿鬼。

我们直接把菠萝吹雪图片拖到耿鬼之上,ctrl加t调整它的大小和位置,让菠萝吹雪完全覆盖住我们的耿鬼,将耿鬼背景图层后面的小锁给它解锁,首先对菠萝吹雪和耿鬼图图层执行ctrl加shift加u去色。

都去色之后,选择缩略图的这张菠萝吹雪的图片ctrl加l,调出它的色阶,那这时候在输出色阶左侧把他的数值向右滑动大概150个数值,然后隐藏菠萝吹雪图层,回到耿鬼图上,ctrl加l调出色阶,把输出色阶右边的这个滑块向左移动大概150个数值。

那这时候显示出菠萝吹雪的这个图层也就是我们缩略图层ctrl加i给他执行一个反相,把它图层混合模式来给他更改为线性减淡(添加),这时候ctrl加shift加atl加e盖印一层,我们把它重命名为1。

这时候隐藏菠萝吹雪的图层,把耿鬼的图层拖到菠萝吹雪图层之上,将我们刚才盖印的这个涂层,它的图层混合模式给他更改为划分,这时候再ctrl加shift加atl加e盖印一层,于是我们得到了2。

这时候我们选择刚才盖印的1把他的图层模式由划分改为正常,隐藏除了1之外的所有图层,然后切换到我们的通道面板,随便选择一个单色的通道,红绿蓝都可以,咱们这边直接选择红色,然后点击下边的虚线小圆圈载入选区。


回到rgb通道,回到图层模式,这时候选择我们的2,并且显示出来,隐藏1,在有选区的情况下直接给2添加一个蒙版,于是我们得到了最终的效果,给它另存为PNG的格式,记住,一定要选择PNG的格式,因为只有png格式可以保留透明像素,这时候一张图的效果已经做好了。

接下来我们看看效果:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Python中制作幻影坦克,需要使用一个3D图形库,例如PyOpenGL和Pygame等。以下是使用PyOpenGL和Pygame制作幻影坦克的基本步骤: 1. 安装PyOpenGL和Pygame 可以使用pip安装PyOpenGL和Pygame: ``` pip install PyOpenGL PyOpenGL_accelerate pip install pygame ``` 2. 导入所需的模块 导入所需的PyOpenGL和Pygame模块,例如: ```python from OpenGL.GL import * from OpenGL.GLU import * import pygame from pygame.locals import * ``` 3. 初始化Pygame和OpenGL 初始化Pygame和OpenGL,例如: ```python pygame.init() pygame.display.set_mode((800, 600), DOUBLEBUF|OPENGL) gluPerspective(45, (800/600), 0.1, 50.0) glTranslatef(0.0,0.0,-5) ``` 4. 创建坦克模型 使用OpenGL创建坦克模型,例如: ```python glBegin(GL_TRIANGLES) glColor3fv((1,0,0)) glVertex3fv((0,1,0)) glColor3fv((0,1,0)) glVertex3fv((-1,-1,1)) glColor3fv((0,0,1)) glVertex3fv((1,-1,1)) glEnd() ``` 5. 渲染坦克 使用Pygame和OpenGL渲染坦克,并在窗口中显示,例如: ```python while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() quit() glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT) glRotatef(1, 3, 1, 1) draw_tank() pygame.display.flip() pygame.time.wait(10) ``` 6. 添加纹理 可以使用Pygame的`pygame.image.load()`方法加载纹理图像,然后使用OpenGL的`glGenTextures()`和`glBindTexture()`方法将纹理绑定到坦克模型上,例如: ```python texture_surface = pygame.image.load('texture.png') texture_data = pygame.image.tostring(texture_surface, 'RGBA', 1) texture = glGenTextures(1) glBindTexture(GL_TEXTURE_2D, texture) glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, texture_surface.get_width(), texture_surface.get_height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, texture_data) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR) ``` 7. 完整代码示例 下面是一个使用PyOpenGL和Pygame制作幻影坦克的完整代码示例: ```python from OpenGL.GL import * from OpenGL.GLU import * import pygame from pygame.locals import * def draw_tank(): glBegin(GL_TRIANGLES) glColor3fv((1,0,0)) glVertex3fv((0,1,0)) glColor3fv((0,1,0)) glVertex3fv((-1,-1,1)) glColor3fv((0,0,1)) glVertex3fv((1,-1,1)) glEnd() def main(): pygame.init() pygame.display.set_mode((800, 600), DOUBLEBUF|OPENGL) gluPerspective(45, (800/600), 0.1, 50.0) glTranslatef(0.0,0.0,-5) texture_surface = pygame.image.load('texture.png') texture_data = pygame.image.tostring(texture_surface, 'RGBA', 1) texture = glGenTextures(1) glBindTexture(GL_TEXTURE_2D, texture) glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, texture_surface.get_width(), texture_surface.get_height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, texture_data) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR) while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() quit() glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT) glRotatef(1, 3, 1, 1) glEnable(GL_TEXTURE_2D) glBindTexture(GL_TEXTURE_2D, texture) draw_tank() glDisable(GL_TEXTURE_2D) pygame.display.flip() pygame.time.wait(10) if __name__ == '__main__': main() ``` 注意:上述代码示例中需要准备好一张名为`texture.png`的纹理图像。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值