00:00
好,我们继续来上课,那么这节课呢,我们再来看一下图片缩放的函数啊,那么图片缩放呢,我们需要考虑的就是什么呀,就是如果您传入的是GPG的,我们要是什么gpeg,对吧?用GPG的还是打开,如果您传是PNG呢,我就得用PNG的打开,如果您传GIF,咱们是不是得用GIF打开对不对?哎,所以这块我们需要去注意的啊,那包括什么,包括我们保存的图片名,因为你再去缩放的时候,你的图片名,比如说人家原来图片名叫a.GBG,那你缩放完以后也叫a.GBG,是不是就把原来的图片给覆盖掉了,对不对,所以这个图缩放以后的图片名我们一定要给它区分开啊,那好了,那在这里面我们来新建一个这个PP文件。叫做零四啊,然后呢,咱们起一个图片释放的HUB杠。C function,那在这里边我们要实现的是图片缩放函数,对吧,来。我们先把函数写上吧,Func function HUB。那在这块我们来给它实现一下,叫做图片缩放函数,那图片缩放函数肯定你需要干嘛要给我一些参数对不对,比如说IPM,你要告什么原图的这个地址吧,也是src的image啊,然后还有什么呢?还有这个PM,你还要告诉我缩放的比例吧,对吧,也就是这个Dollar了宽。
01:19
啊和I的PM到了高啊,这叫做缩放的。高度对吧,缩放的宽度还有什么,还有原图的地址。离子对吧,哎,然后呢,这里边干嘛,返回是不是有返回值啊,哎,返回什么呀,返回。保存叫re什么re啊,这个新或者是。缩略图缩,呃,新缩略图的信息啊,返回新缩略图的信息对不对,那好了,那现在咱们来看啊,在这里边同样我们还要有一个参数对吧,有个什么参数咱说了是不是要区分呢?哎,给它来一个什么,来一个这个PI吧,啊P它是干嘛呢?是缩放图片的前缀对吧?哎,好了,那这样的话咱们来看,比如说先给我原图的到SRCSRC。
02:13
还有Dollar了。这个W到了,H到了是不是这些,比如到了W的,我默认给他一个100。这个默认,我也给他一个100这个默认。也是一个S杠啊,前缀说话嘛,S开头的啊S杠好了,那现在完事以后,第一件事进来,第一件事干嘛,我是不是要要这个。判断。传入图片的类型啊,对吧,有了这个类型,我是不是就可以干嘛就可以去。对应。用相应的函数打开吧,那怎么能获取到这个类型,你比如说用户再去调用啊,这里边你看了thu MB对吧,就传传一个什么,比如说已经传了一个这个叫做a.GBG了啊,我瞎点达啊,比如说传个a.GBG,那在这里边我怎么能拿到类型了,诶你看我是不是可以找到点最后出现的位置到末尾的字符,也就是说在这里边到了SUF后缀等这个结尾等于什么呀?等于这个STRRCHR在这个字符串中在哪个字位,Src以面积里边对吧?给我找到点就后出现的位置到末尾的字符嘛,那这个时候我们来看好了,VR-DB我们来打印。
03:23
UFX。零四是不是拿到了,拿到这个点JPG了对吧?哎,包括银传的,比如说也可能传什么点杠当前目录以妹积下编,这有可能是这样的地址,那这个时候你看我是不是也能拿到点GPG,那是不是如果人是点7PG,我就对应的用用这个什么,用这个GPG的函数来打开,那么也就是说在这里边我是不是就可以判断了s wi ch wi判断sux对吧?那case如果一定要等于点GPG的话,那我对应的是不是就要调用什么,调用我的这个叫做create from gpg是不是这个意思对吧?哎,如果在case,比如说人家要等于点PG的话,那我是不是就是image create c。
04:12
ECREATE。然后叫PNG的函数对不对,哎,如果是人家的GIF的点GIF的,那我是不是就是诶。GIF啊,我不用这个屏,我现在写的都是伪代码,它运行可能报错啊,那是不是就得用它对应的这个函数来打开,是不是这个意思,哎,但是我每次这么去判断是不是代码量很多呀,那这样的话就会很麻烦啊,那怎么办呢?我们可以再去简单一点,你比如说。我们现在拿到这个后缀了,那么拿到这个后缀以后,你看点记不记了对吧,我可以干嘛呢?我可以在这样你看好了啊,我给你这么去做,我不用这种方式啊,我把这个方式注释掉了,对吧,我只是给你提个醒,有这种方式啊,那在这里面我再打印一下啊。咱们是不是点GPGRTR,我要删掉这个字符串中的这个点。
05:03
删删到这个点好了,最终我要了什么,是不是要JPG啊对不对,那现在你看好了,在这里边来。粉啊。再开起来啊,这回你来看我拿到什么,是不是GPG了,对吧,那接下来我就直接做一个判断就行了,如果到了Su。Sui,要是等于等于什么GPG的话,那我就要刀了。Suf Su,就咱们等于什么,等于一个gpeg gpg好了,我为什么要做这样的一个判断呢?因为在这里边我想用变量函数。啊,使用变量函数。或者叫做制作变量函数的函数名吧,怎么做呢?咱们来看就到了func func等于等于什么一个字符串叫image c from,后面连连什么连sux,好了,那你看我如果是gpeg,比如说它是GPG,咱们给改成gpeg了,那是不是就image可瑞from gpeg,这是不是就是我函数名啊?那有了这个函数名,那接下来可以干嘛?咱们是不是就通过?
06:10
打开。叫通过。变量。函数的方式来干嘛呀。打开已有的图片,已。有啊图片了,那也就是Dollar,比如说image等于到了fun nc括号对吧,是不是调用变的函数了,然后往里面扔,扔谁呀,是不是扔我这个src里面。这是不是就搞定了对不对,那就不用像这样这么麻烦了吧,哎,好了。那这段代码啊,我拿到我的函数外。那你下来以后,你可以自己来看这两种格式,你愿意用哪种都可以,对不对,但是我们这种变量函数方式是不是就比较简单了,那直接打开完以后,那接下来干嘛呀。我是不是就可以。打开已有的图片啊。
07:01
好了,那接下来我是不是就可以去获取图片的框杆了,对不对,那就是获取。获取原图的宽和高,对吧,那就是高了WD。TH就等于image积S叉对吧?等于什么呢?等于到把这个到了image积这个资源,那么理解,那到了het高度呢,也等于一面积XY把这个Dollar了一面积资源扔里边好了,拿到宽高以后,接下来干嘛?是不是进行进行等比例缩放的运算对吧?那同样在这里边在进行的时候,我就是两个这个行就这样吧,然后在这里边我就直接如果如果什么如果你的这个宽度要是小于你的这个,诶到了1I。GT的时候,那这个时候我就干嘛呢,我让我的这个等高。对吧,就等于你的这个高度,然后呢,你让你的这个等宽,那就得做运算了,对吧,让我的这个width宽度去乘,乘以什么,乘以我的这个高度除以我实际的高度是不是就可以了,对吧?然后再往后,否则,否则的话,我的这个呃等宽呢,就等于我的这个宽度,然后我去变换什么,变换我的高度对吧,等。
08:13
宽对吧,然后接下来呢,就是我的等宽要不对等高对吧?等高要等于什么,等于我的高度去乘以,乘以谁除以我的这个宽度和除以我的这个WWD,其实际的宽度是不是就可以了,哎,那么有了它以后,接下来干嘛,我是不是就可以创建发布了创建。跨步,那创建跨步创建多大,是不是人压缩多大,咱就创建多大,对吧,比如这里面找了new。Image等于image I'image c。TR处color创建多大,创建这个宽和这个高的对不对,然后呢,接下来我们一样也给它,给它分配一个颜色,等于image color I image。Cat,给这个谁呀?妞,你面积里面分配一个2552552551个白色的颜色,对吧,然后再往后呢。
09:08
开始给他填充面积,Feel给谁呢?给Dollar了new面积里面从00点开始填充BC,好,填完以后接下来是不是就开始拷贝图像了,拷贝。图像。图像对吧,那拷贝图像那一样以may解copy。用它来拷贝对吧,从new image把you imagine,还有一个image对吧,牵是什么我的心。资源到原资源,然后我的新的坐标点,新的坐标是不是就要有变化了。对不对,哎,就像我们昨天做的,我们新做的边肯定是有变化的,那我这块先给两个变量到X到Y啊圆从零,圆柱外点从零零开始拷贝,对吧,然后拷贝多宽呢,很宽。等高到我的宽度,还有我的高度是不是给这些参数对吧?那这个X跟Y怎么去做呀?那在这里边我来给他声明一下啊,比如说在这块我来刀X让它等于零,到Y也让它等于零,那如果走到这里面的时候,那就是我的这个图片是什么,高度是满的,那宽度是不是就要变化,所以这个X我就给它做一个C。
10:12
让它的这个宽度去减减,诶不行,这样的啊,高了宽度减减谁呢?减我的等宽,然后再去除以二是不是就可以了,对吧?那如果要是这个宽度是比较比较宽的图片呢,宽是满的,那我就算它的高度呗,对吧,那高度C那就是我的刀了这个H。Dollar h减去我的刀DH,然后再除以个二是不是就可以了,对不对,那好了,那现在完事,完事以后接下来干嘛,接下来咱是不是就保存图片了,哎,保存图片,那保存图片就有个问题了。那我们就要知道你原来图片是什么格式的,你要是以这个GPG的,我是不是就得对应的用gpeg来保存gpeg对不对?如果你是这个PNG的,那我是不是就用以image png来保存?没错吧,那也就是不管怎么样,那最终我是不是又得做变量函数了,对不对,所以在这里边再次资助变量函数,变量函数。
11:09
保存。图片的变量函数对吧?那在这里边一样,比如说包了这个image-UNC了,等于什么呢?等于image连上包了Sui,这是后缀对吧?这个后缀是不是我再一进到这个函数里面就开始获取了,哎,好了。那有了这个函数以后,接下来在这里边。遭了R等于到了一面杠。Fun nc u nc等于什么呢?你要把谁对吧,把这个。New保存到哪里,诶保存到哪里。对吧?哎,那保存到哪里啊,或者他叫什么名啊,我是不是有个前缀啊,对不对,所以在这里边我应该干嘛,我是不是要获取原图的图片名称啊,是不是要这样才一才对啊,所以先把它注释掉啊,那怎么获取原图的图片名称呢?那我们再来看VR-BP,我们再来打一下原图,原图是不是叫src内景对吧?我们再来看,在这里边再来刷新原图的话,这些都爆出正来啊,因为我没有资源嘛。
12:10
你看是不是这样的,那这个时候我是不是要找到这个斜线最后出现的位置,这是不是就是我的名称对不对,或者我可以通过什么,通过函数直接什么呢?通过这个叫做呃,贝斯。不对。Face name。BA菲斯内这个函数。维持可以直接干嘛呀,获取到我这个图片的名称,你看能不能拿到啊,来这里面再来刷新。来是不是拿到a.GBG了,哎,那好了,拿到a.GBG了,我是不是要加上前缀啊,也就是在这块我是不是要加上一个Dollar p连上一个这个东西对吧?那这个时候你看是不是就是S-a.GPG是不是图片名就有了,哎,那有了图片名,那最终我是不是在这里边,比如说我的Dollar name就应该等于等于什么呢?等于Dollar p re。连上飞。
13:01
B。Me base name把到src以为就丢进来,是不是这样的,哎,那有了这个name以后,那最终我是不是就把这个图片保存保存什么名呢?就叫内这个名啊,是不是这个意思,但是这里面还有个问题。什么问题呢,你看好了啊,人家原来是什么,原来是有路径的,看到是不是以面积下边的这个东西对不对,而我们现在是什么,我们现在是不是直接相当于。S-a.GBG是不是就直接保存到当前目录下了?没错吧,哎,所以你这里边可以再给一个参数,给个什么呢?给一个pass路径,也就是说你保存到哪里对吧,比如说我保存到当前目录HUB下。诶,这是我要保存的这个路径啊,那既然保存的这个路径,那好了,那现在咱们在这里边,那是不是我要再拼接一下它的这个名字了,那也就是说在它的前面是不是要加加上一个加上一个HUB啊对不对,加上一个斜线是不是这个意思,那也就说人这块有变量了,我是不是就直接Dollar pass.p点这个,那这个时候来VDOP,你看我再来打印这个Dollar name啊。
14:03
到了,那你看是不是路径带名称了啊,来再来刷新,你看是不是保存到ATHHUB没有斜杠吧。是没有斜杠,那你看这里边人家船斜杠了吗?没船对吧,那我这里面加斜杠,那你看这个时候走你。是不是对了?对不对,哎,那这路径倒是对了,那你也知道,那别人传的时候很有没有可能说只传了这个东西,就是好比比如说在这里边我要传参嘛,我就传一个什么HUB可不可以。是不是也行对吧,这也是正规的路径,但是我在这里边传出是不是报错,这就不对了吧,这是不是直接是当图片名来了,看到了吧,哎,所以在这里边,我在这里边还要对路径做下这个处理啊,对这个路径做处理怎么处理呢?这里边Dollar pass。等于等于什么?等于RTRM删掉这个pass PA右边的这个斜线,对吧,然后删完以后我自己再连一个啊,也不管你有没有我都删,删完之后我再连,那这个时候你再来看刷新,诶是不是就没问题了,对吧?没问题,那如果我传一个,比如说我在这里面传啊,我传的时候就代谢线了,带斜线是不是就会被删掉啊,那这时候你再来看刷新。
15:10
是不是也没问题,路径咱是不是就对了。对吧,哎,好了,那路径对了,那在这里边我们就可以干嘛了,现在创建目录我们不会对吧?也就是说这个目录如果不存在,不存在,那咱他只能报错了,对不对,因为什么我们现在不会创建目录,所以这里边我们先不管它啊,不管创建目录的问题,那接下来咱们来看在这块路径我是不是就搞定了,这个名字最终是不是有了,有了这个名字以后,好了,我把这个名字注释掉,把它开起来,开起来以后我是不是就把这个图片资源保存到这个。叫这个陆金山这个名了,对不对,那接下来干嘛,是不是就是四方。资源呢,是不是释放资源,哎,释放资源呢,这里边imageq到了image释放,然后还有image ima,把这个Dollar new image这两个资源释放掉,对吧?最终这个函数调用这个函数,它会返回一个结果,对吧?如果它为true,比如说如果Dollar result为true的话,我干嘛呢?我就re return谁啊,这个Dollar pass啊,不对,是Dollar name。
16:14
就是你的这个压缩的名称,那否则我就退一个。Re to return怎样return一个false,也就是有错了对不对,哎,那好了,那我这个函数是不是搞定了,搞定以后现在啊在这里边。来接收一下它的返回值,那我们再来打印它的返回值啊。来为杠DP打印谁啊,打印Dollar了,当然我们说了这个图这个路径是不是用不了对吧?我们得自己去创建这个路径啊,来一样把这个a.GBG我们先拿过来,CTRLC放到我们这里边来啊,先让它有图片,然后呢,在这块呢,我们再来创建一个叫THHUB的这个目录,然后呢,这里边我们再来创建一个image目录。以面集目录好了,我把这个A呀扔到以面集里边,扔到这里边来了啊扔到这里边来,那我在传的时候是不是当前目录,哎,啊以面集里面的A呀是不是这样的,对吧?然后呢,压缩完以就缩放完以后是不是存到这里边来了,那这个时候我们来看可不可以我一点击刷新,那你看是不是告诉我返回的式路径了,哎,返回式路径了,那这个时候来你看好了,在这里边。
17:17
找到tmb这次的压缩版的。是不压缩版的图片就有了,对不对,甚至我还可以干嘛,我要告诉他压缩的是多宽多宽多高的,是不是也可以对吧,比如说我让他干嘛呢,在这里面在拼接的时候啊,保存名称。是不是这块拼接的S杠,S杠再连什么,连上这个到W。连着杠,再来连一个。下线再来刀了。H,哎,什么意思啊,是不是我把那个宽高,就是你压缩的这个宽高,我都给你反馈出来了,对吧?都给你拼到这个名字上了啊,那现在你再来看我这里边再来刷新的时候告诉什么S-100-100A了,对不对,那现在你看在这里边是不是又有一个了,对不对?那比如说现在是缩放一百一百的,那比如说我这里面换了,我说我不要缩放一百一百的,我要缩放多少的,我说五十五十的,那是不是在这里边我继续往下传参数,给他一个五零,给他一个五零就可以了。
18:10
对不对啊,给5050,那现在我们再来刷新,刷新完之后你看是不返回5050的名字,那你要看这里面图片啊,找到这里面的图片是不是5050的也有了,看到了吧?哎,打开是不是也是正常的了。哎,这就是咱们的图片缩放函数啊,好了,那这节课我们到这里。
我来说两句