ps 订阅
Adobe Photoshop,简称“PS”,是由Adobe Systems开发和发行的图像处理软件。Photoshop主要处理以像素所构成的数字图像。使用其众多的编修与绘图工具,可以有效地进行图片编辑工作。ps有很多功能,在图像、图形、文字、视频、出版等各方面都有涉及。2003年,Adobe Photoshop 8被更名为Adobe Photoshop CS。2013年7月,Adobe公司推出了新版本的Photoshop CC,自此,Photoshop CS6作为Adobe CS系列的最后一个版本被新的CC系列取代。截止2019年1月Adobe Photoshop CC 2019为市场最新版本。Adobe支持Windows操作系统 、Android与Mac OS, 但Linux操作系统用户可以通过使用Wine来运行Photoshop。 展开全文
Adobe Photoshop,简称“PS”,是由Adobe Systems开发和发行的图像处理软件。Photoshop主要处理以像素所构成的数字图像。使用其众多的编修与绘图工具,可以有效地进行图片编辑工作。ps有很多功能,在图像、图形、文字、视频、出版等各方面都有涉及。2003年,Adobe Photoshop 8被更名为Adobe Photoshop CS。2013年7月,Adobe公司推出了新版本的Photoshop CC,自此,Photoshop CS6作为Adobe CS系列的最后一个版本被新的CC系列取代。截止2019年1月Adobe Photoshop CC 2019为市场最新版本。Adobe支持Windows操作系统 、Android与Mac OS, 但Linux操作系统用户可以通过使用Wine来运行Photoshop。
信息
开发商
Adobe Systems Software Ireland Ltd
软件授权
共享(盒装单许可售价 5000 元人民币)
软件分类
图像处理与修改
软件名称
Photoshop(PS)
更新时间
2019
软件版本
非盒装(CC2015)、盒装(CS6)
软件脚本
AppleScript, JS, VBS
软件平台
Windows、Mac OS
软件语言
多国语言(含中文)
软件大小
要求 1GB 可用磁盘空间(Mac 为 2G)
Adobe Photoshop历史
Photoshop的两位创始人(2张) 1987年,Photoshop的主要设计师托马斯·诺尔买了一台苹果计算机(MacPlus)用来帮助他的博士论文。与此同时,Thomas发现当时的苹果计算机无法显示带灰度的黑白图像,因此他自己写了一个程序Display;而他兄弟约翰·诺尔这时在导演乔治·卢卡斯的电影特殊效果制作公司Industry Light Magic工作,对Thomas的程序很感兴趣。两兄弟在此后的一年多把Display不断修改为功能更为强大的图像编辑程序,经过多次改名后,在一个展会上接受了一个参展观众的建议,把程序改名为Photoshop。此时的Display/Photoshop已经有Level、色彩平衡、饱和度等调整。此外John写了一些程序,后来成为插件(Plug-in)的基础。他们第一个商业成功是把Photoshop交给一个扫描仪公司搭配卖,名字叫做Barneyscan XP,版本是0.87。与此同时John继续找其他买家,包括Super Mac和Aldus都没有成功。最终他们找到了Adobe的艺术总监Russell Brown。Russell Brown此时已经在研究是否考虑另外一家公司Letraset的ColorStudio图像编辑程序。看过Photoshop以后他认为Knoll兄弟的程序更有前途。在1988年7月他们口头决定合作,而真正的法律合同到次年4月才完成。在二十世纪90年代初美国的印刷工业发生了比较大的变化,印前(pre-press)电脑化开始普及。Photoshop在版本2.0增加的CMYK功能使得印刷厂开始把分色任务交给用户,一个新的行业桌上印刷(Desktop Publishing-DTP)由此产生。 [1]  至2015年2月19日,是Adobe Photoshop发布25周年纪念。 [2-3]  2018年7月17日报道,Adobe计划在2019年推出iPad全功能版本Photoshop。 [4] 
收起全文
精华内容
下载资源
问答
  • RTP协议全解析(H264码流和PS流)

    万次阅读 多人点赞 2014-09-12 17:35:05
    1RTP Header解析 2、RTP荷载H264码流 2.1、单个NAL单元包 2.2、分片单元(FU-A) 3、RTP荷载PS流 3.1、PS包头 3.2、系统标题 3.3、节目映射流 3.4、PES分组头部

     

    这么多年过去,偶然发现这篇文章的阅读量已经接近20万,略感自豪。

    本想把代码公开了,但是在Gayhub上面发现了更加优秀的项目,分享给大家。

    https://github.com/ireader/media-server

    感谢作者老陈,开源了这么好的东西,避免大家重复造轮子了。

    ---------------------------------------------------------------------以上为2020年更新-----------------------------------------------------------------------

    写在前面:RTP的解析,网上找了很多资料,但是都不全,所以我力图整理出一个比较全面的解析,

    其中借鉴了很多文章,我都列在了文章最后,在此表示感谢。

    互联网的发展离不开大家的无私奉献,我决定从我做起,希望大家支持。

     

    原创不易,转载请附上链接,谢谢http://blog.csdn.net/chen495810242/article/details/39207305

     

    1、RTP Header解析

     

                                                                       

                                                                                        图1

    1)        V:RTP协议的版本号,占2位,当前协议版本号为2

    2)        P:填充标志,占1位,如果P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。

    3)        X:扩展标志,占1位,如果X=1,则在RTP报头后跟有一个扩展报头

    4)        CC:CSRC计数器,占4位,指示CSRC 标识符的个数

    5)        M: 标记,占1位,不同的有效载荷有不同的含义,对于视频,标记一帧的结束;对于音频,标记会话的开始。

    6)        PT: 有效荷载类型,占7位,用于说明RTP报文中有效载荷的类型,如GSM音频、JPEM图像等,在流媒体中大部分是用来区分音频流和视频流的,这样便于客户端进行解析。

    7)        序列号:占16位,用于标识发送者所发送的RTP报文的序列号,每发送一个报文,序列号增1。这个字段当下层的承载协议用UDP的时候,网络状况不好的时候可以用来检查丢包。同时出现网络抖动的情况可以用来对数据进行重新排序,序列号的初始值是随机的,同时音频包和视频包的sequence是分别记数的。

    8)        时戳(Timestamp):占32位,必须使用90 kHz 时钟频率。时戳反映了该RTP报文的第一个八位组的采样时刻。接收者使用时戳来计算延迟和延迟抖动,并进行同步控制。

    9)        同步信源(SSRC)标识符:占32位,用于标识同步信源。该标识符是随机选择的,参加同一视频会议的两个同步信源不能有相同的SSRC。

    10)    特约信源(CSRC)标识符:每个CSRC标识符占32位,可以有0~15个。每个CSRC标识了包含在该RTP报文有效载荷中的所有特约信源。

    注:基本的RTP说明并不定义任何头扩展本身,如果遇到X=1,需要特殊处理

     

    取一段码流如下:

     

    80 e0 00 1e 00 00 d2 f0 00 00 00 00 41 9b 6b 49 €?....??....A?kI

    e1 0f 26 53 02 1a ff06 59 97 1d d2 2e 8c 50 01 ?.&S....Y?.?.?P.

    cc 13 ec 52 77 4e e50e 7b fd 16 11 66 27 7c b4 ?.?RwN?.{?..f'|?

    f6 e1 29 d5 d6 a4 ef3e 12 d8 fd 6c 97 51 e7 e9 ??)????>.??l?Q??

    cfc7 5e c8 a9 51 f6 82 65 d6 48 5a 86 b0 e0 8c ??^??Q??e?HZ????

    其中,
    80               是V_P_X_CC
    e0               是M_PT
    00 1e          是SequenceNum
    把前两字节换成二进制如下
    1000 0000 1110 0000
    按顺序解释如下:
    10               是V;
    0                 是P;
    0                 是X;
    0000           是CC;
    1                 是M;
    110 0000    是PT;
     
     
    排版不如word看的清晰,大家凑合着看吧。
     
    原创不易,转载请附上链接,谢谢http://blog.csdn.net/chen495810242/article/details/39207305
     

    2、RTP荷载H264码流

                                                                                图2

    荷载格式定义三个不同的基本荷载结构,接收者可以通过RTP荷载的第一个字节后5位(如图2)识别荷载结构。

    1)   单个NAL单元包:荷载中只包含一个NAL单元。NAL头类型域等于原始 NAL单元类型,即在范围1到23之间

    2)   聚合包:本类型用于聚合多个NAL单元到单个RTP荷载中。本包有四种版本,单时间聚合包类型A (STAP-A),单时间聚合包类型B (STAP-B),多时间聚合包类型(MTAP)16位位移(MTAP16), 多时间聚合包类型(MTAP)24位位移(MTAP24)。赋予STAP-A, STAP-B, MTAP16, MTAP24的NAL单元类型号分别是 24,25, 26, 27

    3)   分片单元:用于分片单个NAL单元到多个RTP包。现存两个版本FU-A,FU-B,用NAL单元类型 28,29标识

     

    常用的打包时的分包规则是:如果小于MTU采用单个NAL单元包,如果大于MTU就采用FUs分片方式。
    因为常用的打包方式就是单个NAL包和FU-A方式,所以我们只解析这两种。

    2.1、单个NAL单元包

                                                         图3

            定义在此的NAL单元包必须只包含一个。这意味聚合包和分片单元不可以用在单个NAL 单元包中。并且RTP序号必须符合NAL单元的解码顺序。NAL单元的第一字节和RTP荷载头第一个字节重合。如图3。

            打包H264码流时,只需在帧前面加上12字节的RTP头即可。

    2.2、分片单元(FU-A)

                                           图4

    分片只定义于单个NAL单元不用于任何聚合包。NAL单元的一个分片由整数个连续NAL单元字节组成。每个NAL单元字节必须正好是该NAL单元一个分片的一部分。相同NAL单元的分片必须使用递增的RTP序号连续顺序发送(第一和最后分片之间没有其他的RTP包)。相似,NAL单元必须按照RTP顺序号的顺序装配。

       当一个NAL单元被分片运送在分片单元(FUs)中时,被引用为分片NAL单元。STAPs,MTAPs不可以被分片。 FUs不可以嵌套。 即, 一个FU 不可以包含另一个FU。运送FU的RTP时戳被设置成分片NAL单元的NALU时刻。

       图 4 表示FU-A的RTP荷载格式。FU-A由1字节的分片单元指示(如图5),1字节的分片单元头(如图6),和分片单元荷载组成。

    S: 1 bit 当设置成1,开始位指示分片NAL单元的开始。当跟随的FU荷载不是分片NAL单元荷载的开始,开始位设为0。

    E: 1 bit 当设置成1, 结束位指示分片NAL单元的结束,即, 荷载的最后字节也是分片NAL单元的最后一个字节。当跟随的 FU荷载不是分片NAL单元的最后分片,结束位设置为0。

    R: 1 bit 保留位必须设置为0,接收者必须忽略该位

    打包时,原始的NAL头的前三位为FU indicator的前三位,原始的NAL头的后五位为FU header的后五位。
     
    取一段码流分析如下:

    80 60 01 0f 00 0e 10 00 00 0000 00 7c 85 88 82 €`..........|???

    00 0a 7f ca 94 05 3b7f 3e 7f fe 14 2b 27 26 f8 ...??.;.>.?.+'&?

    89 88 dd 85 62 e1 6dfc 33 01 38 1a 10 35 f2 14 ????b?m?3.8..5?.

    84 6e 21 24 8f 72 62f0 51 7e 10 5f 0d 42 71 12 ?n!$?rb?Q~._.Bq.

    17 65 62 a1 f1 44 dc df 4b 4a 38 aa 96 b7 dd 24 .eb??D??KJ8????$
     
    前12字节是RTP Header
    7c是FU indicator
    85是FU Header
    FU indicator(0x7C)和FU Header(0x85)换成二进制如下
    0111 1100 1000 0101
    按顺序解析如下:
    0                            是F
    11                          是NRI
    11100                    是FU Type,这里是28,即FU-A
    1                            是S,Start,说明是分片的第一包
    0                            是E,End,如果是分片的最后一包,设置为1,这里不是
    0                            是R,Remain,保留位,总是0
    00101                    是NAl Type,这里是5,说明是关键帧(不知道为什么是关键帧请自行谷歌)
     

    打包时,FUindicator的F、NRI是NAL Header中的F、NRI,Type是28;FU Header的S、E、R分别按照分片起始位置设置,Type是NAL Header中的Type。

    解包时,取FU indicator的前三位和FU Header的后五位,即0110 0101(0x65)为NAL类型。

    3、RTP荷载PS流

            针对H264 做如下PS 封装:每个IDR NALU 前一般都会包含SPS、PPS 等NALU,因此将SPS、PPS、IDR 的NALU 封装为一个PS 包,包括ps 头,然后加上PS system header,PS system map,PES header+h264 raw data。所以一个IDR NALU PS 包由外到内顺序是:PSheader| PS system header | PS system Map | PES header | h264 raw data。对于其它非关键帧的PS 包,就简单多了,直接加上PS头和PES 头就可以了。顺序为:PS header | PES header | h264raw data。以上是对只有视频video 的情况,如果要把音频Audio也打包进PS 封装,也可以。当有音频数据时,将数据加上PES header 放到视频PES 后就可以了。顺序如下:PS 包=PS头|PES(video)|PES(audio),再用RTP 封装发送就可以了。

            GB28181 对RTP 传输的数据负载类型有规定(参考GB28181 附录B),负载类型中96-127

            RFC2250 建议96 表示PS 封装,建议97 为MPEG-4,建议98 为H264

            即我们接收到的RTP 包首先需要判断负载类型,若负载类型为96,则采用PS 解复用,将音视频分开解码。若负载类型为98,直接按照H264 的解码类型解码。

            注:此方法不一定准确,取决于打包格式是否标准

    PS 包中的流类型(stream type)的取值如下:

    1)        MPEG-4 视频流: 0x10;

    2)        H.264 视频流: 0x1B;

    3)        SVAC 视频流: 0x80;

    4)        G.711 音频流: 0x90;

    5)        G.722.1 音频流: 0x92;

    6)        G.723.1 音频流: 0x93;

    7)        G.729 音频流: 0x99;

    8)       SVAC音频流: 0x9B。

    3.1、PS包头

                                                     图7

    1)        Pack start code:包起始码字段,值为0x000001BA的位串,用来标志一个包的开始。

     

    2)        System clock reference base,system clock reference extenstion:系统时钟参考字段。

    3)        Pack stuffing length :包填充长度字段,3 位整数,规定该字段后填充字节的个数

    80 60 53 1f 00 94 89 00 00 0000 00 00 00 01 ba €`S..??........?

    7e ff 3e fb 44 01 00 5f 6b f8 00 00 01 e0 14 53 ~.>?D.._k?...?.S

    80 80 05 2f bf cf bed1 1c 42 56 7b 13 58 0a 1e €€./????.BV{.X..

    08 b1 4f 33 69 35 0453 6d 33 a8 04 15 58 d9 21 .?O3i5.Sm3?..X?!

    9741 b9 f1 75 3d 94 2b 1f bc 0b b2 b4 97 bf 93 ?A??u=?+.?.?????

    前12位是RTP Header,这里不再赘述;

    000001ba是包头起始码;

    接下来的9位包括了SCR,SCRE,MUXRate,具体看图7

    最后一位是保留位(0xf8),定义了是否有扩展,二进制如下

    1111 1000

    前5位跳过,后3位指示了扩展长度,这里是0.

    3.2、系统标题

     


                                                               图8
    Systemheader当且仅当pack是第一个数据包时才存在,即PS包头之后就是系统标题。取值0x000001BB的位串,指出系统标题的开始,暂时不需要处理,读取Header Length直接跳过即可。

    3.3、节目映射流

    Systemheader当且仅当pack是第一个数据包时才存在,即系统标题之后就是节目流映射。取值0x000001BC的位串,指出节目流映射的开始,暂时不需要处理,读取Header Length直接跳过即可。前5字节的结构同系统标题,见图8。

     

     

    取一段码流分析系统标题和节目映射流

     

    00 00 01 ba 45 a9 d4 5c 34 0100 5f 6b f8 00 00  ...?E??\4.._k?..

    01 bb 00 0c 80 cc f5 04 e1 7f e0 e0 e8 c0 c0 20  .?..€??.?.?????

    00 00 01 bc 00 1e e1 ff00 00 00 18 1b e0 00 0c ...?..?......?..

    2a 0a 7f ff 00 00 0708 1f fe a0 5a 90 c0 00 00  *........??Z??..

    00 00 00 00 00 00 01 e0 7f e0 80 80 0521 6a 75  .......?.?€€.!ju

     

    前14个字节是PS包头(注意,没有扩展);

    接下来的00 00 01 bb是系统标题起始码;

    接下来的00 0c说明了系统标题的长度(不包括起始码和长度字节本身);

    接下来的12个字节是系统标题的具体内容,这里不做解析;

    继续看到00 00 01 bc,这是节目映射流起始码;

    紧接着的00 1e同样代表长度;

    跳过e1 ff,基本没用;

    接下来是00 18,代表基本流长度,说明了后面还有24个字节;

    接下来的1b,意思是H264编码格式;

    下一个字节e0,意思是视频流;

    接下里00 0c,同样代表接下的长度12个字节;

    跳过这12个字节,看到90,这是G.711音频格式;

    下一个字节是c0,代表音频流;

    接下来的00 00同样代表长度,这里是0;

    接下来4个字节是CRC,循环冗余校验。

    到这里节目映射流解析完毕。(好累)。

     

    原创不易,转载请附上链接,谢谢http://blog.csdn.net/chen495810242/article/details/39207305

     

    好戏还在后头呢。

    3.4、PES分组头部

                                                             图9

    别被这么长的图吓到,其实原理相同,但是,你必须处理其中的每一位。

     

    1)        Packet start code prefix:值为0x000001的位串,它和后面的stream id 构成了标识分组开始的分组起始码,用来标志一个包的开始。

    2)        Stream id:在节目流中,它规定了基本流的号码和类型。0x(C0~DF)指音频,0x(E0~EF)为视频

    3)        PES packet length:16 位字段,指出了PES 分组中跟在该字段后的字节数目。值为0 表示PES 分组长度要么没有规定要么没有限制。这种情况只允许出现在有效负载包含来源于传输流分组中某个视频基本流的字节的PES 分组中。

    4)        PTS_DTS:2 位字段。当值为'10'时,PTS 字段应出现在PES 分组标题中;当值为'11'时,PTS 字段和DTS 字段都应出现在PES 分组标题中;当值为'00'时,PTS 字段和DTS 字段都不出现在PES分组标题中。值'01'是不允许的。

    5)        ESCR:1位。置'1'时表示ESCR 基础和扩展字段出现在PES 分组标题中;值为'0'表示没有ESCR 字段。

    6)        ESrate:1 位。置'1'时表示ES rate 字段出现在PES 分组标题中;值为'0'表示没有ES rate 字段。

    7)        DSMtrick mode:1 位。置'1'时表示有8 位特技方式字段;值为'0'表示没有该字段。

    8)        Additionalinfo:1 位。附加版权信息标志字段。置'1'时表示有附加拷贝信息字段;值为'0'表示没有该字段。

    9)        CRC:1 位。置'1'时表示CRC 字段出现在PES 分组标题中;值为'0'表示没有该字段。

    10)    Extensionflag:1 位标志。置'1'时表示PES 分组标题中有扩展字段;值为'0'表示没有该字段。

    PES header data length: 8 位。PES 标题数据长度字段。指出包含在PES 分组标题中的可选字段和任何填充字节所占用的总字节数。该字段之前的字节指出了有无可选字段。

     

    老规矩,上码流:

     

    00 00 01 e0 21 33 80 80 05 2b 5f df 5c 95 71 84 ...?!3€€.+_?\?q?

    aa e4 e9 e9 ec 40 cc17 e0 68 7b 23 f6 89 df 90 ?????@?.?h{#????

    a9d4 be 74 b9 67 ad 34 6d f0 92 0d 5a 48 dd 13 ???t?g?4m??.ZH?.

     

    00 00 01是起始码;

    e0是视频流;

    21 33 是帧长度;

    接下来的两个80 80见下面的二进制解析;

    下一个字节05指出了可选字段的长度,前一字节指出了有无可选字段;

    接下来的5字节是PTS;

    第7、8字节的二进制如下:

    1000 0000 1000 0000

    按顺序解析:

    第7个字节:

    10                         是标志位,必须是10;

    00                         是加扰控制字段,‘00’表示没有加密,剩下的01,10,11由用户自定义;

    0                           是优先级,1为高,0为低;

    0                           是数据对齐指示字段;

    0                           是版权字段;

    0                           是原始或拷贝字段。置'1'时表示相关PES分组有效负载的内容是原始的;'0'表示内容是一份拷贝;

    第8个字节:

    10                         是PTS_DTS字段,这里是10,表示有PTS,没有DTS;

    0                           是ESCR标志字段,这里为0,表示没有该段;

    0                           是ES速率标志字段,,这里为0,表示没有该段;

    0                           是DSM特技方式标志字段,,这里为0,表示没有该段;

    0                           是附加版权信息标志字段,,这里为0,表示没有该段;

    0                           是PESCRC标志字段,,这里为0,表示没有该段;

    0                           是PES扩展标志字段,,这里为0,表示没有该段;

    本段码流只有PTS,贴一下解析函数

     

    unsigned long parse_time_stamp (const unsigned char *p)
    {
        unsigned long b;
        //共33位,溢出后从0开始
        unsigned long val;
    
        //第1个字节的第5、6、7位
        b = *p++;
        val = (b & 0x0e) << 29;
    
        //第2个字节的8位和第3个字节的前7位
        b = (*(p++)) << 8;
        b += *(p++);
        val += ((b & 0xfffe) << 14);
    
        //第4个字节的8位和第5个字节的前7位
        b = (*(p++)) << 8;
        b += *(p++);
        val += ((b & 0xfffe) >> 1);
    
        return val;
    }

     

     

     

    其他字段可参考协议解析

     

    ps:

    遇到00 00 01 bd的,这个是海康私有流的标识,可以丢弃。丢弃之后就看不到原视频里移动侦测时闪烁的红框。

    ps:

    另外,有的hk摄像头回调然后解读出来的原始h.264码流,有的一包里只有分界符数据(nal_unit_type=9)或补充增强信息单元(nal_unit_type=6),如果直接送入解码器,有可能会出现问题,这里的处理方式要么丢弃这两个部分,要么和之后的数据合起来,再送入解码器里,如有遇到的朋友可以交流一下:)

     

    写在后面:

    第一次发原创,在这里感谢  @cmengwei  的无私帮助,提供了很多帮助,非常感谢。

     

    文档我都放在了我的资源里面,有1个下载积分,大家不要吝啬,绝对值得!

     

    《RTP Payload Format for H.264 Video》

    http://download.csdn.net/detail/chen495810242/7904367

    《MPEG2-2(13818中文版)》

    http://download.csdn.net/detail/chen495810242/7904401

     

     

    RTP荷载H264的代码参考:

    http://blog.csdn.net/dengzikun/article/details/5807694

    RTP荷载PS流的代码参考:

    http://www.pudn.com/downloads33/sourcecode/windows/multimedia/detail105823.html

    http://www.oschina.net/code/snippet_99626_23737

     

    请不要跟我要源码,参考我提供的这些,你足以写出一个可以正常运行的程序。

    授人以鱼不如授人以渔。

     

    其他参考:

     

    http://blog.csdn.net/duanbeibei/article/details/1698183

    http://blog.csdn.net/wwyyxx26/article/details/15224879

     

    原创不易,转载请附上链接,谢谢http://blog.csdn.net/chen495810242/article/details/39207305

     

    彩蛋:这里竟然有源码😍😍😍

     👇👇👇👇👇

    👇👇👇👇👇

    https://mianbaoduo.com/o/bread/YZaXmJdr

     

    展开全文
  • 其实现在还是有很多设计人员只会一些基础的ps技巧,有时候断网了不能在网上找素材,或者找到了素材也不见得是自己需要的,只要学会本课程,平时看到那些高端大气的背景素材效果你就能轻松得制造出来,各种背景素材...
  • PS模块必打的初级增强包介绍

    之前在很多文章中我都有建议上实施PS模块的项目均激活PS模块初代的增强包:OPS_PS_CI_1,因为此增强包不仅带来PS模块性能的提升、也有大量非常有意义的新功能。

    此增强包被包含在早在2007年的年末SAP针对ECC 6.0推出的增强包3中(SAP enhancement package 3 for SAP ERP 6.0)。

    如果不知道是否激活可在前台输入事物代码SFW5进行查看,进入业务功能界面后,可通过CRTL+F输入OPS_PS_CI_1快速定位查看状态:

    在这里插入图片描述
    如果功能前的灯泡图标为闪烁状态则代表此功能已经激活:

    在这里插入图片描述

    反之,如果灯泡为灰色则代表未被激活:

    在这里插入图片描述
    正文

    下面介绍下OPS_PS_CI_1增强包中提供的部分有意义新功能以及新增强:

    项目构造器中的提升:

    (1)激活增强包中可以展示已归档的项目

    (2)增加了立即保存功能(这个在之前的文章介绍过,解决了在项目构造器中保存编辑历史时而不退出到初始界面,详情可见跟着团子学SAP PS:PS常见问题答复小合辑)
    在这里插入图片描述
    (3)可以自定义在“最近编辑”中显示多少个项目(最多20个)
    在这里插入图片描述
    简易成本计划(Easy Cost Planning)的增强:

    新增网络活动以及活动元素为ECP的编辑对象,可通过新增事务代码CJ9ECP进行操作.

    *需要在后台配置中激活,激活路径如下:

    在这里插入图片描述
    项目物料组件的增强:

    (1)挂接物料组件时,新增“C”的项目类别,从而支持OCI(Open Catalog Interface)传输
    在这里插入图片描述
    (2)可以在不使用第三方采购申请的方案下直接点击地址图标维护物料的交货地址:

    *需要在物料组件概览的界面中点击“地址”图标:

    在这里插入图片描述
    (3)新增BADI:BADI_MAT_CUST_SCR 从而支持针对物料组件可以增加自定义字段。

    (4)可以定义物料组件细节画面的字段状态组,从而控制此界面中具体字段的必输、显示、隐藏等等。配置路径如下:
    在这里插入图片描述
    统计指标增强:

    在后台激活后可以建立项目管理对象与统计指标的联系,利于项目信息的统计以及项目公共或间接成本的分摊。可查看跟着团子学SAP PS:利用项目统计指标(SKF)提升项目成本核算的精准性获得更多信息。

    进程分析以及预测工作台增强:

    主要是进程分析工作台(CNPAWB)及预测工作台(CNFOWB)界面上的一些提升以及新增一些细节的功能。

    ACL功能增强

    ACL是Access Control List的缩写,众所周知CJ20N中的权限设计非常复杂,标准权限配置可能无法满足,这时可通过ACL权限去更灵活的设计项目权限。

    多语言文本支持

    可激活多语言文本,方便维护项目管理对象在多语言环境下对应的描述等等。

    后台激活路径如下:

    在这里插入图片描述
    项目采购申请汇总指示符

    在项目定义层级新增汇总指示符页签,可以自定义相关代码实现后续采购需求汇总要求:
    在这里插入图片描述
    后续创建服务活动或外部活动时,可输入汇总指示符代码。后续所有的采购需求都可以打包在一个采购申请中方便采购部门后续执行:
    在这里插入图片描述
    在这里插入图片描述
    此外此增强包中还对PS模块性能提升、ProMan,进程最终(Progress Tracking)进行了优化,新提供了部分增强点,这些内容不再介绍,感兴趣的小伙伴可点击以下官网链接获得此增强包的基础信息:

    https://help.sap.com/viewer/235c008f0a794eda8aabf3e3aa808377/6.04.20/en-US/592c933709f042a09ecda7f7971698c2.html

    本文仅用于SAP软件的应用与学习,不代表SAP公司。(注:文中所示截图来源SAP ERP软件,软件相应著作权归SAP所有)

    在这里插入图片描述

    展开全文
  • linux下PS1、PS2、PS3、PS4最全详解

    万次阅读 2018-02-06 09:58:29
    通过设置环境变量PS1、PS2、PS3以及PS4来自定义用户命令行的字符显示。如果要长期永久性修改提示符,可以将修改提示符的命令添加到$HOME/.profile或$HOME/.bash_profile文件中 PS1 PS1是主提示符变量,也是默认...

    通过设置环境变量PS1、PS2、PS3以及PS4来自定义用户命令行的字符显示。如果要长期永久性修改提示符,可以将修改提示符的命令添加到$HOME/.profile$HOME/.bash_profile文件中

    PS1

    PS1是主提示符变量,也是默认提示符变量。默认值[\u@\h \W]\$,显示用户主机名称工作目录。

    基本上通过设置PS1来定义命令行提示字符即可,最常用的需求就是显示登录的用户名、主目录、主机名等等。

    默认的是:

    [root@centos7 ~]# echo $PS1
    [\u@\h \W]\$

    效果:

    这里写图片描述

    参考1:

    [root@centos7 ~]#PS1="\[\e[1;35m\][\u@\h \W]\\$\[\e[0m\]"

    效果:

    这里写图片描述

    参考2:
    1. 如何加颜色:加颜色链接
    2. 在PS1值之后加一个空格。从个人角度来讲,使用这个空格可以增加一定的可读性
    3. 把定义好的变量写成脚本建议放到/etc/profile.d/
    举例:

    [root@centos7 ~]#vim /etc/profile.d/env.sh 
    PS1="\[\e[1;36m\][\u@\h \W]\\$\[\e[0m\]"

    PS1变量可以使用的参数值有如下:

    参数 描述
    /d 代表日期,格式为weekday month date,例如:”Mon Aug 1”
    /H 完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux
    /h 仅取主机的第一个名字,如上例,则为fc4,.linux则被省略
    /t 显示时间为24小时格式,如:HH:MM:SS
    /T 显示时间为12小时格式
    /A 显示时间为24小时格式:HH:MM
    /u 当前用户的账号名称
    /v BASH的版本信息
    /w 完整的工作目录名称。家目录会以 ~代替
    /W 利用basename取得工作目录名称,所以只会列出最后一个目录
    /# 下达的第几个命令
    /$ 提示字符,如果是root时,提示符为:# ,普通用户则为:$
    /[ 字符”[“
    /] 字符”]”
    /! 命令行动态统计历史命令次数

    PS2

    一个非常长的命令可以通过在末尾加 \ 使其分行显示
    PS2多行命令的默认提示符,默认值是 >

    PS2一般使用于命令行里较长命令的换行提示信息,比如:

    [root@centos7 ~]#echo \           
    >   #默认的
    
    [root@centos7 ~]# export PS2=">+ "  # 修改
    
    [root@centos7 ~]#echo \            
    >+   #修改后
    

    当用 \ 使长命令分行显示,非常易读。当然我也有的人不喜欢分行显示命令

    PS3

    Shell脚本中使用select时的提示符

    你可以像下面示范的那样,用环境变量PS3定制shell脚本的select提示:
    不使用PS3的脚本输出:

    [root@centos6 ~]#cat ps3.sh
    select i in mon tue wed exit
    do
        case $i in
            mon) echo "Monday";;
            tue) echo "Tuesday";;
            wed) echo "Wednesday";;
            exit) exit;;
        esac
    done
    [root@centos6 ~]#bash ps3.sh 
    1) mon
    2) tue
    3) wed
    4) exit
    #? 1      [注: 提示符是 #?]
    Monday
    #? 2
    Tuesday
    #? 4

    修改PS3后效果

    [root@centos6 ~]#cat ps3.sh  
    PS3="Select a day (1-4): "
    select i in mon tue wed exit
    do
        case $i in
            mon) echo "Monday";;
            tue) echo "Tuesday";;
            wed) echo "Wednesday";;
            exit) exit;;
        esac
    done
    [root@centos6 ~]#bash ps3.sh 
    1) mon
    2) tue
    3) wed
    4) exit
    Select a day (1-4): 1       [注: 提示符是 Select a day (1-4):]
    Monday
    Select a day (1-4): 2
    Tuesday
    Select a day (1-4): 4

    PS4

    PS4-set -x用来修改跟踪输出的前缀(很少很少用到 随意就不解释了)

    如果有兴趣,可以学习bash里面的简介。
    可以百度 linux超級技巧,第33章講述了ps3,ps4

    • PS3 The value of this parameter is used as the prompt for the select command (see SHELL GRAMMAR above).

    • PS4 The value of this parameter is expanded as with PS1 and the value is printed before each command bash displays during an execution trace. The first character of PS4 is replicated multiple times, as neces-sary, to indicate multiple levels of indirection. The default is ”+ ”.

    展开全文
  • 目的:从网络安装下载的PKG到PS4 环境:PS4 HEN之后+windows 电脑一台 问题:下载一遍,拷贝到移动硬盘一遍,安装一遍,装个游戏要花3倍时间 解法:直接从网络发送PKG到PS4,节省掉移动硬盘安装时间 步骤: 1...

    申明:本文章工具软件来自互联网,不传播任何游戏资源,如有侵权请联系我将立即删除

     

    目的:从网络安装下载的PKG到PS4

    环境:PS4 HEN之后+windows 电脑一台

    问题:下载一遍,拷贝到移动硬盘一遍,安装一遍,装个游戏要花3倍时间

    解法:直接从网络发送PKG到PS4,节省掉移动硬盘安装时间

     

    步骤:

    1.WIN10 下载安装服务端软件  点我下载

    2.解压打开,安装JS 后打开  PS4 Package Sender 

    输入PS4的IP,把PKG拖拽到窗口点击process

    3. PS4 HEN后安装客户端软件后打开,点我下载 remote_pkg_installer.pkg 

    4.打开后会自动下载包并安装,安装软件可以切换到后台

     

     

    展开全文
  • 最近很多学生在学习我的PS课程的时候经常会问了我这样的问题,一个是win10系统打不开ps了,还有就是Windows10安装PS软件后无法直接拖动图片到ps里面,只能打开PS软件后,点击 文件---打开 进行图片的载入。
  • PS基础教程

    千次阅读 2017-05-04 11:21:44
  • SAP PS模块最实用的报表介绍及对应的增强建议
  • Linux下PS1、PS2、PS3、PS4使用详解

    千次阅读 2017-01-16 12:53:05
    shell调试可以设置PS4 $ echo $PS4 +{$LINENO:${FUNCNAME[0]}} 原贴:http://os.51cto.com/art/201205/334954.htm 1、PS1——默认提示符 如下所示,可以通过修改Linux下的默认提示符,使其更加...
  • ps aux、ps -aux、ps -ef之间的区别

    万次阅读 多人点赞 2017-06-28 09:10:18
    ps aux 和ps -aux和 ps -ef的选择 Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的...
  • docker ps 和docker ps -a

    千次阅读 2020-02-14 12:31:54
    列出正在运行的容器 docker ps 显示所有的容器,包括未运行的 docker ps -a
  • ps aux 和ps -aux和 ps -ef的选择

    千次阅读 2019-01-25 15:53:33
    ps aux 和ps -aux和 ps -ef的选择 足至迹留 2014/12/11 17:18:38 阅读(7893) 评论(0) Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是...
  • PS怎么压缩图片大小而像素不变

    万次阅读 2018-06-23 16:27:05
    通过PS压缩图片大小 ,而像素不变! 其中一个主要的原因:网站的图片,数量多而且文件又太大了! 有的图片占用字节能达到1M,甚至2M以上。 本文就总结一下:通过PS软件,对图片进行有效压缩,进而达到网站的...
  • ps -ef 和ps -aux 和ps aux

    千次阅读 2017-05-23 11:24:09
    1ps aux和ps –aux请注意”ps -aux”不同于”ps aux”。POSIX和UNIX的标准要求”ps -aux”打印用户名为”x”的用户的所有进程,以及打印所有将由-a选项选择的过程。如果用户名为”x”不存在,ps的将会解释为”ps aux...
  • ps快捷键常用表,ps快捷键大全!天下武功,唯快不破!看完这篇PS快捷键使用指南,帮你掌握最常用的32个Photoshop 快捷键! 注:左上为Mac快捷键,右上为PC快捷键 1、Command+T:自由变形 该快捷键,主要对图层进行...
  • PSPS将彩色相片变成纯黑白色

    万次阅读 2018-05-01 21:52:44
    PSPS将彩色相片变成纯黑白色 目录 实现结果 实现步骤 实现结果 彩色变为黑白色 实现步骤 只需要两步即可!先将模式设置位灰色,然后滤镜选择木刻,再细致调整参数即可! ...
  • PS菜鸟入门 -- PS堆栈

    万次阅读 2017-06-01 17:55:33
    一、首先看一下 PS堆栈 效果图:(取自网上)二、摄取图片首先,准备好三脚架和快门线。然后,构图。定好焦距、焦点、光圈、快门、ISO等,连续拍摄N张照片。最后,使用 PS 堆栈。这部分,再讲一个利用 PS 将 mp4 ...
  • 本套PS教程主要教PS软件工具使用,从零基础入门开始详细讲解PS软件的每一个工具的使用与技巧,本套PS教程让喜欢PS的你能够对软件迅速熟练及运用,PS基础教程简单易学,非常适合广大的PS爱好者、已经或即将踏入设计...
  • 课程目标 从零开始掌握PS的基础知识,学会抠图修图调色合成制作特效,涵盖平面设计淘宝美工照片修复网页设计UI 适用人群 PS零基础小白,在校大学生,职场新人,想从事平面设计、摄影后期、电商设计、UI设计、自媒体...
  • <ps> ps aux 和ps -aux和 ps -ef的选择

    千次阅读 2015-12-17 13:32:00
    Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。 要...
  • linux命令ps

    千次阅读 2020-08-30 21:47:29
    工作中经常用到ps -ef 和ps -aux ,下面看一下对应选项是啥意思。 a 显示所有用户的所有进程(包括其它用户) u 按用户名和启动时间的顺序来显示进程 x 显示无控制终端的进程 -e 显示所有进程,环境变量 -f...
  • 在工作中,招标时要对设备进行gb28181检测,需要对音视频数据进行封装,封装方式为PS流,封装实现如下: 简要概述:整体机制均有udp发送,发送的数据要封装为rtp格式,rtp负载即为PS流。 PS流: PS流由众多PS包构成...
  • PS2015下载PSCC2015安装教程

    千次阅读 2019-10-21 13:14:40
    PSCC2015(64位)下载链接:https://pan.baidu.com/s/1FTRjQmYaDgaJVQZtO7vT0w PSCC2015(32位)下载链接:https://pan.baidu.com/s/1FsJ8wq9tdcbjnjv55tqDaA PSCC2015.5(64位)下载链接:...
  • PS绘画软件基础入门课程

    千人学习 2018-11-21 16:33:55
    课程详细介绍了插画常用的软件SAI、PS,数位板的功能和使用技巧,以及插画漫画的基础技巧,包括五官、人体比例的分配,头发、眼睛、衣服的细节刻画,造型原创等,详实的展示了插画漫画的创作思路和过程。
  • ps进程命令

    千次阅读 2016-08-26 14:21:28
    Android的ps命令介绍和技巧ps进程命令和Linux的ps不同,Linux的ps命令可以这样子:ps -aux,Android上ps的参数并不能一起使用,如ps -txPc.在adb shell终端,输入 ps,可查看手机当前所有的进程状态
  • 跟着团子学SAP PSPS常见问题答复小合辑 (1)如何在项目构造器中保存数据而不退回到初始界面? 很多人在项目构造器中最常遇见一个问题就是每次保存数据后又要重新打开项目,有时只是想简单地保存一下数据然后继续...
  • PS抠字、PS修改图片文字

    万次阅读 2019-01-09 11:29:02
    步骤如下: 1、打开图片,复制图层【快捷键:Ctrl +J】,关闭背景图层。 2、用矩形选框工具圈定待抠掉的...【快捷键:shift+F5】内容识别(ps cs4以上版本)进行智能填充。 4、重新打上需要的文字,保存,完成。...
  • Linux的ps aux/ps -ef:风格不同

    千次阅读 2019-06-08 23:22:19
    1. ps aux和ps –aux POSIX和UNIX的标准要求"ps -aux"打印用户名为"x"的用户的所有进程,以及打印所有将由-a选项选择的过程。 如果用户名为"x"不存在,ps的将会解释为"ps aux",而且会打印一个警告。这种行为是...
  • linux中查看进程命令ps aux和ps -ef

    万次阅读 2017-11-12 15:42:18
    Linux下显示系统进程的命令ps,最常用的有ps -ef 和ps aux。这两个到底有什么区别呢?两者没太大差别,讨论这个问题,要追溯到Unix系统中的两种风格,System V风格和BSD 风格,ps aux最初用到Unix Style中,而ps -...
  • Linux ps命令

    千次阅读 2019-06-13 09:21:55
    一、ps命令 ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 253,654
精华内容 101,461
关键字:

ps