vegas黑白遮罩的使用。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vegas黑白遮罩的使用。相关的知识,希望对你有一定的参考价值。

我有一个字幕标题,一段黑白遮罩动态视频。

我想让文字一开始透明状态,然后随着图中白色区域的扩大逐渐出现,该怎么操作。
以前用AE做过,能实现,但是用VEGAS不知道怎么弄。

参考技术A VEGAS也可以做关键帧,在一段素材的右下角有几个小图标,其中一个点击后就会出现一个窗口,里面可以调节 参考技术B Vegas里面遮罩的动画还真没做过

如果动画少的话,就多打几个关键帧吧

如何在ios的UIView中找到遮罩的位置和大小

【中文标题】如何在ios的UIView中找到遮罩的位置和大小【英文标题】:how to find mask position and size in UIView in ios 【发布时间】:2016-09-26 11:14:30 【问题描述】:

我想在 IOS 中从 UIImage 获取掩码的 (x,y)position 和 (width,Height)size,我使用 UIImage 作为掩码,如 我只想从这个UIImage 中获取形状的框架,我使用了类似的代码

thumbImage.layer.mask?.position 
thumbImage.layer.mask?.bounds

但我没有得到正确的位置和框架。

必须使用这种类型的图像来屏蔽其他图像的任何其他选项。

请帮助我在UIView 中获得正确的框架和蒙版位置。

【问题讨论】:

【参考方案1】:

从图像中读取像素,并在从图像中获取CGRect 后与您的设备宽度和高度进行比较。

- (CGRect)getRectFromImage:(UIImage*)image


    // First get the image into your data buffer
    CGImageRef imageRef = [image CGImage];
    NSUInteger width = CGImageGetWidth(imageRef);
    NSUInteger height = CGImageGetHeight(imageRef);
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
    unsigned char *rawData = malloc(height * width * 4);
    NSUInteger bytesPerPixel = 4;
    NSUInteger bytesPerRow = bytesPerPixel * width;
    NSUInteger bitsPerComponent = 8;
    CGContextRef context = CGBitmapContextCreate(rawData, width, height,
                                                 bitsPerComponent, bytesPerRow, colorSpace,
                                                 kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
    CGColorSpaceRelease(colorSpace);

    CGContextDrawImage(context, CGRectMake(0, 0, width, height), imageRef);
    CGContextRelease(context);


    int x = 0;
    int y = 0;
    int xPos = 0;
    int yPos = 0;

    int xMax = 0;
    int yMax = 0;


    for (x = 0; x < width; x++) 
        for (y = 0; y < height; y++) 
            unsigned char alphaByte = rawData[(y*bytesPerRow)+(x*bytesPerPixel)+3];
            if (alphaByte > 0) 

            if (xPos == 0) 
                xPos = x;
            

            if (yPos == 0) 
                yPos = y;
            
                if (x < xPos) 
                    xPos = x;
                

                if (y < yPos) 
                    yPos = y;
                

                if (x > xMax) 
                    xMax = x;
                

                if (y > yMax) 
                    yMax = y;
                
            
        
    

    NSLog(@"(%i,%i,%i,%i)", xPos, yPos,xMax-xPos,yMax-yPos);


    free(rawData);

    return CGRectMake(xPos, yPos, xMax-xPos, yMax-yPos);

【讨论】:

【参考方案2】:

您可以创建变量来获取大小和位置,如下代码:CGPoint Position; 位置 = thumbImage.frame.origin; CGSize 尺寸; 大小 = thumbImage.frame.size;

【讨论】:

我想要从掩码中获取动态帧,这只是示例,我有很多不同的图像用于掩码

以上是关于vegas黑白遮罩的使用。的主要内容,如果未能解决你的问题,请参考以下文章

vegas里如何添加动态遮罩

ZBrush中遮罩的概念及使用

vegas的遮罩怎么对全部素材应用

如何给C4D添加多个层遮罩?

[Vue Js]如何实现一个带遮罩的全屏div

创建带遮罩的文本框,但在空白时隐藏带遮罩的字符