作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我发现 Instagram 有一个像 300*300 这样的摄像头窗口?它是一个正方形,然后我尝试使用 GPUImage 制作相同的摄像头尺寸。所以我这样写:
primaryView = [GPUImageView alloc] initWithFrame:
CGRectMake(0,0,300,300)];//define a square view
//define a still camera
stillCamera = [[GPUImageStillCamera alloc]
initWithSessionPreset:AVCaptureSessionPreset640x480
cameraPosition:AVCaptureDevicePositionFront];
//make it portrait
stillCamera.outputImageOrientation = UIInterfaceOrientationPortrait;
//define a filter
filter = [[GPUImageFilter alloc] init];
//force the output to 300*300
[filter forceProcessingAtSize:((GPUImageView*)self.primaryView).sizeInPixels];
//set things up
[stillCamera addTarget: filter];
[filter addTarget: primaryView];
[stillCamera startCameraCapture];
现在我真的得到了一个方形 View ..但是 View 看起来很平坦,它完全变形了,我认为它可能是长宽比有问题。然后我像这样设置主视图的填充模式:
[primaryView setFillMode:kGPUImageFillModePreserveAspectRatioAndFill];
然后这个:
[primaryView setFillMode:kGPUImageFillModePreserveAspectRatio];
然后这个:
[primaryView kGPUImageFillModeStretch];
最后!这些都不起作用..所以我缺少的是任何人的帮助。
最佳答案
-forceProcessingAtSize:
使该过滤器输出与您提供的尺寸完全相同的图像,忽略纵横比。这会将您的图片压缩成 300x300 的正方形。
如果您想保留图像的纵横比,您需要使用 -forceProcessingAtSizeRespectingAspectRatio:
。
但是,这会使您的图像变成信箱。要复制 Instagram 的功能,您可能想要从图像中心切出一个正方形区域。为此,请使用方形纵横比的裁剪滤镜。
关于aspect-ratio - 使用GPUImage时如何保持宽高比?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17783357/
我将我的用户图片作为文件保存在我的硬盘上。(不在数据库中)。 我将获取此 *.jpg 文件的高度和宽度,该怎么做? (背景:我必须计算高度和宽度之间的比率以使其达到指定的高度和宽度而不拉伸(stret
我是一名优秀的程序员,十分优秀!