gpt4 book ai didi

ios - CGImageCreateWithImageInRect 没有在正确的位置裁剪

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:34:26 25 4
gpt4 key购买 nike

我的应用程序中有一个场景,我使用

截取视频的屏幕截图
[myMovieController requestThumbnailImagesAtTimes:@[@(myMovieController.currentPlaybackTime)] timeOption:MPMovieTimeOptionExact];

效果很好。然后我必须裁剪视频上触摸位置的图像。我添加了 myMovieController 的手势识别器。我从手势识别器获取触摸位置。

然后我使用下面的代码来截屏

CGRect cropRect = tapCircleView.frame;
cropRect = CGRectMake(touchPoint.x * image.scale,
touchPoint.y * image.scale,
cropRect.size.width * image.scale,
cropRect.size.height * image.scale);
CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], cropRect) ;
UIImage* cropped = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
[self showImage:cropped];

其中 cropRect 宽度和高度为 150。

但是裁剪结果没有正确的 x 和 y。而且生成的图像也非常像素化。我已经尝试了所有解决方案,但都没有用。我缺少什么?

谢谢。

最佳答案

捕获屏幕截图的图像大小与运行应用程序的设备大小不同。因此,不要使用相同的图像,而是使用以下代码更改图像的大小:

CGRect rect = CGRectMake(0,0,[UIScreen mainScreen].bounds.size.width,    [UIScreen mainScreen].bounds.size.height);
UIGraphicsBeginImageContext( rect.size );
[image drawInRect:rect];
UIImage *picture1 = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

NSData *imageData = UIImagePNGRepresentation(picture1);
UIImage *img=[UIImage imageWithData:imageData];

现在只要您想在任何地方使用此图像即可!

干杯。

关于ios - CGImageCreateWithImageInRect 没有在正确的位置裁剪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33991469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com