如何实现类似Photoshop的图层功能?

wxj_lake 2001-02-09 06:23:00
每个图层都是透明显示,任意缩放,请问有没有对此有研究的高手,拜托给一点思路吧,先行谢过!
...全文
374 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
classfactory 2001-02-11
  • 打赏
  • 举报
回复

这个问题我也曾考虑过,我的一些想法如下,供你参考:

1、图层用两个数组表示,一个是图像颜色数据,一个是mask,即表示数据中哪些象素是有效的。这种方法几乎是唯一的,因为象Win32中在一个位图中指定一种颜色是透明色显然是不合适的。可以设计如下的数据结构:

class CLayer
{
CString m_strName; // 层名称

int m_cxLayer; // 层宽度,可以与图像大小不一样
int m_cyLayer; // 层高度
int m_xOffset; // 偏移量
int m_yOffset;

BYTE* m_pData; // DIB颜色数据
BYTE* m_pMask; // 像素掩膜(0表示透明,1表示不透明,即有效)

int m_nAlpha; // 表示层的透明度
int m_nMode; // 模式
...
}

在图像需要显示的时候,把所有的层根据m_pMask、m_nAlpha、m_nMode进行内存运算并生成最终位图(DIB)即可。(只有当进行编辑操作后这个位图才需要改变)

注意,如果使用这种方法的话,所有的操作(包括画一条线)都必须自己实现,因为必须在修改数据的同时修改相应的遮罩。

2、魔术棒颜色选择必须根据遮罩来进行,实际跟Win32下的Rgn生成差不多。另外,相容性就是图像的颜色差异范围。比如红色是RGB(255, 0, 0),搜索时若允许10的偏差,则RGB(245, 0, 0)、RGB(255, 10, 0)等都应该是有效点。实际实现起来比较复杂。

liangzai 2001-02-11
  • 打赏
  • 举报
回复
<<visual c++开发GIS系统》陈建春,电子工业出版社,80。00元,或许能对你有所帮助
wxj_lake 2001-02-10
  • 打赏
  • 举报
回复
谁还有更可操作的建议,如果像stzhou(阿毛)说的用位图映射,那么进一步的问题是如何实现快速的魔术棒颜色选择?
wooingcn 2001-02-10
  • 打赏
  • 举报
回复
自己做个图层类,然后开一个数组或一个链表.在每个图层类上操作,显示的时候,再一个个显示,不过这个图层类的实现是有很大难度的.Good luck!
stzhou 2001-02-09
  • 打赏
  • 举报
回复
补充一点:不规则的,透明的图像用图像模板来实现,即每一层图像要有与之相对应的模板,以标志图像的显示区与于透明区域
例如:用1bit表示一个像素,0表示当前点透明,1表示需要显示
breath 2001-02-09
  • 打赏
  • 举报
回复
图层作成链表,不同图元联结到所在图层上
随风bj 2001-02-09
  • 打赏
  • 举报
回复
有意思,咱们也把 photoshot给开了!!
太复杂了,也不知道从何想起,有两点比较容易理解:1.调色板的控制 2.类似于数据库的内存操作算法
在国外,最近一段时间里 PhotoLine 变得非常流行,其功能和效率已经不输于一些大型专业级的像处理。这是一个形,其功能和效率已经不输于一些大型专业级的像处理,同样可以像 ACDSee 一样快速浏览目录下的所有。支持 Layer,并且内建许多现成的滤镜和特效功能,轻轻松松就能做出令人惊讶的影像效果!有一个功能很不错,体积很小却能读取 文件。 PhotoLine PhotoLine 主要特性 支持单页或多页文档,路径文字、多块多页文字连续排版,标尺控制段落缩进;   支持像素、矢量或文字层及编组,调整层,层效果,通道,蒙版和滤镜; 各种专业绘画、调整、辅助和历史记录工具应有尽有,内置画笔、案、效果和滤镜很丰富; 支持模板、日历,自带、幻灯功能像格式批量转换; 支持切片、按钮设计器和动画等网页设计功能,甚至能输出swf格式的。 想想如今连AcdSee的安装程序都近20兆,这7兆的大小是不是让人难以置信?因其小巧,所以启动运行飞快。然而功能强悍,则又令人不可思议。 PhotoLine 特色功能 安装后第一次打开Photo Line的界面感觉纷乱,您可以按的界面(1)在View菜单中的Dialogs和Toolbar进行设置,只留下Toolbox(工具箱), Layer setting(层选项), Guides(参考), Alignments(对齐)工具条和Tool setting(工具选项), Style(样式), Layer(层)面板,这样就类似Photo shop 6.0,方便顺手。 Options菜单下的Options是重要的对进行综合设置的选项,Keyboard Layout 可自定义快键。由于默认快键较少,所以我把许多工具和命令都定义成同Photo shop一样,用起来更爽。 工具箱与Photo shop相似,容易上手,但层、文字层或矢量层时会智能地随之变化。有些工具很有特色。移动工具和自由变形工具整合为层工具。魔棒比Photo shop好用,因为它可以自动填补内部空洞以形成完整连续的选区,很酷!章画的案有些每一笔画出的都不一样(事实上是因为画笔文件可包含多个层);滤镜画笔可以使用滤镜绘画。工具栏对齐工具也较Photo shop方便快捷。 Effects菜单和Style面板提供了令人眼花缭乱的层效果,有些Photo shop也没有,而且参数丰富可调。笔 者最满意的是经常使用的各种角度的3D投影不再再在Photo shop中多步完成或借助Eye candy了。 Photo Line的内置滤镜超强,尤其是Effect Filter 和Shape Tool下的每一个滤镜又有很多种类,而且参数丰富,让你随心所欲,变化无穷,直教人爱不释手。我们可以打开帮助下的About版权信息,看一看Photo Line可以实现的效果。蒙娜丽莎和那个飘动窗口的效果就是分别用Effect Filter-Drawing Filter-Points Water和Shape Tools-Distort Wavy做成的。 毫不夸张地说,凡是Photo shop能做出的效果,Photo Line也能完成,而且可能更快。它还同时支持和Mac OS,可见其是专业。 PhotoLine 小结 PhotoLine 的界面十分接近,可以自定义工具、面板和快键,比较容易上手。笔者用它绘制线型、文字、修改插都很方便,后期已能够使用它完成工全部作;也能够较好地输出PSD文件(只是文字转换成了像)再供使用,便于与同事协作。如果完全使用它从矢量做起,也是能够胜任的,只是某些工具与的习惯不一致而已。   当然美玉也有瑕疵,一是对中文的支持不够完美,没有版,中文有时会出现乱码;界面也不够漂亮。另外就是对兼容性有待提高。例如读入psd会丢失层组、蒙版,文字不能再;有些默认快键与冲突,像减去选区是Ctrl而不是Alt,对专业来说,应该对事实标准Photo shop兼容。不过Photo Line仍是一款不可多得的优秀象处理,非常值得一用。
Xara Designer Pro是Xara出品的一套很棒的像编辑处理软件包,Xara Designer用来绘、处理像、制作WEB形,具有制速度快、软件体积小、界面美观等特点,被誉为世界上速度最快的绘软件。 Xara Designer除了拥有极强绘能力外,Designer Pro 的另一个显著特点就是能够很方便的快速“生产”网页片(支持类似Photoshop的切功能)。 例如,你可以用Designer Pro 来制作网站的导航片,绘画处理和修饰你的画作,它拥有很友好、直观的介面,因此,不需要你具备很专业的美工基础,简单的只需要点击几下滑鼠即可完成你的作品,你还可以将它们发佈到网络上面。从而把做变成了一件快乐的事情,Designer Pro 的操作简单直观的让人难以置信。用Xara Designer你可以自己画一个按钮放到你的网页上面,或者从一个视频中截取一段,然后把它们转换成 GIF,等等……软件的功能和其输出的效果相当完美! Designer Pro 还内置大量模板,制作一些相对简单的效果比PS快N倍,非常适合懒人型玩家!!Xara Designer Pro拥有大量的象编辑工具,包括实时的防混淆抗假信号、透明度、现实的影子实现、所有一类刷子、使效果成斜面等,以及强大的3d字体制作工具,且Xara Designer的绘工具简单易用,同Photoshop一样,每个绘工具都有相应的属性栏,结合工具栏中的颜色、层、框架等功能调整,就能制作出专业水准的设计作品。Xara Designer本来是Corel公司的产品(相当于简化版的CorelDraw),后来独立开发,功能越来越完善。该软件操作方式和CorelDraw基本一致。
革命性的智能骨骼™ 智能骨骼是一个令人难以置信的功能,可以减少或完全消除角色关节周围的扭曲 – 免费是在膝盖和肘部周围。对一组点进行分组并使用智能骨骼控制杆创建3D观看动作,您可以通过转动表盘轻松重复该动作。例如,使用智能骨骼,您可以通过简单的拨号动作控制面部表情和头部转动,而不必触摸每个骨骼点。智能骨骼不仅可以提高骨骼动作的质量和真实感,还可以更轻松地重复复杂的动作并控制您的装配元素。智能骨骼允许控制切换层,层顺序,层可见性,跟随路径,水平/垂直翻转层,笔触曝光,形状效果定位,形状效果参数(如渐变颜色),已转换的矢量形状的3D厚度3D甚至更智能的骨骼控制。 骨约束 对 Moho 的骨骼特征进行了几项重大改进。新的骨约束功能将包括装配选项,这将有助于设置更复杂和更强大的字符。独立角度约束允许骨骼保持其与摄像机起重机类似的全局角度,并且不受反向运动学或其骨骼父母的影响。骨约束的理想用途包括角色上的机器人手臂或脚,当腿的其余部分移动时保持约束。壁球和拉伸骨骼缩放增强允许骨骼挤压和拉伸物体。弯头弯曲功能有助于改善异常弯曲和挤压问题。新的目标骨骼帮助骨骼指向正确的方向,而不是需要一致地设置角度。骨骼的其他改进包括更新的反向运动学求解器和自动骨骼缩放。 FBX 支持 Unity™ 游戏开发人员 Unity™ 游戏开发者和用户现在可以在 Moho Pro 中使用 FBX 对动画 2D 内容的支持,无需为游戏开发创建严格的精灵,并提供获得他们想要的精确外观的能力。 FBX 是 Autodesk® 的 3D 动画自适应文件格式,是在 Unity 中集成动画 2D 和 3D 资源的最常用方法。 导入 Photoshop 文件 导入现有的 Photoshop 文件,所有层都保持不变。 Photoshop 中所做的更改会立即显示在 Anime Studio 中导入的文件中,从而可以不断优化 Photoshop 文档。导入的 PSD 文件支持许多 Photoshop 功能,包括混合模式,层不透明度,智能对象和智能滤镜。组也受支持,可以在 Photoshop 中设置,自动导入 Moho Pro 作为切换层,以便快速制作动画。 弹跳,弹性和交错插值 通过将Bounce关键帧类型应用于时间轴,任何插值的对象都将在两个关键帧内弹跳。弹性提供橡皮筋效果,使物体在到达终点之前来回弹跳。可以针对每种插值类型调整设置,以更改对象反弹的次数,强度等。 Stagger会产生动画在两个关键帧之间卡顿或交错的效果。没有为此效果创建其他关键帧。例如,如果你想创建一个角色有问题解除重物的效果,那就太好了。 实时媒体连接 当在外部程序中编辑时,Moho Pro 中的新实时媒体连接会自动更新导入的 Anime Studio 文件中的像,电影和音频文件。这对个人和制作工作室来说都是一个很好的工作流程增强功能。 单独的渲染过程 批量导出器和渲染器现在作为单独的进程执行。即使您退出 Anime Studio Pro,渲染过程也会继续,直到作业完成。 预览动画 您现在可以在提交渲染之前预览动画。通过上传到文件>预览动画,将创建一个小视频文件,允许您在工作区模式下查看动画,没有丢帧。虽然此方法不应用于最终导出,但您可以将这些文件保存并保存在计算机的其他位置,甚至可以在需要时与其他人共享。在动画制作和节省大量时间时,这可以极大地减少试错,这对于创意项目来说是非常宝贵的。 深度转移 在Z中向前和向后移动物体时,Depth Shifting 是保持其表观尺寸的选项。 Moho Pro 通过自动应用适当的比例来实现这一点。这可以用来安排景观,例如将山脉放置在远处而不会迫使它们变得很小。 媒体支持 现在将推出 64 位 Windows 版本的 Moho Pro Moho Pro 12系统要求 Windows® 7,8.1,10 64位安装需要64位操作系统 1.3 GHz Pentium 4或更高版本,Athlon 64 或更高版本 建议使用 2GB RAM 最低 1.6GB可用硬盘空间 支持 OpenGL 的 GPU 推荐 1440×900 常规密度显示(推荐 1920×1080)* DVD-ROM 驱动器(仅限物理版) 定期产品激活服务需要 Internet 连接 *对于高像素密度显示器,最小分辨率将根据操作系统建议的缩放级别而变化。 例如,如果操作系统建议缩放级别为200%,则最低要求可能高达2736×1824分辨率。 或者,如果操作系统建议将缩放级别设置为150%,则最低要求可能高达2160×1440分辨率。

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧