gpt4 book ai didi

iphone - 在 scrollView 内的 ImageView 中裁剪缩放图像

转载 作者:可可西里 更新时间:2023-11-01 03:31:23 24 4
gpt4 key购买 nike

我身边已经做了很多努力。最后我需要帮助。谢谢

目标:1) 我如何将 imageView 放入 ScrollView

2) 我如何在 scrollView 中裁剪缩放图像。

我在 ScrollView 中有一个 imageView。我想要缩放后裁剪图像,它显示在 ScrollView 边界内。我已经裁剪了图像,但它与我想要的不完全相同。

这里我将 backgroundColor Black 设置为我的 scrollView。当我将 imageView 放入其中时,它不合适。 enter image description here

缩放后 ScrollView 中的图像是

enter image description here

裁剪后的图片是

enter image description here

我的代码在这里:

- (void)viewDidLoad
{
[super viewDidLoad];

CGRect frame1 = CGRectMake(50,50,200,200);

CGRect frame2 = CGRectMake(50,50,200,200);

imageView1=[[UIImageView alloc]initWithFrame:frame1];

imageView1.image= [UIImage imageNamed:@"back.jpeg"];

imageView1.backgroundColor=[UIColor brownColor];

imageView1.contentMode = UIViewContentModeScaleAspectFit;



scroll=[[UIScrollView alloc]initWithFrame:frame2];

scroll.backgroundColor=[UIColor blackColor];

[scroll addSubview:imageView1];

scroll.delegate=self;

[self.view addSubview:scroll];

[self setContentSizeForScrollView];

self.imageView1.userInteractionEnabled = YES;

}

设置 ScrollView 内容大小

-(void)setContentSizeForScrollView
{
// scroll.contentSize = CGSizeMake(imageView1.frame.size.width,imageView1.frame.size.height);

scroll.contentSize = CGSizeMake(200, 200);
scroll.minimumZoomScale = .50;
scroll.maximumZoomScale = 1.5;
}

我的裁剪逻辑是

-(IBAction)cropButtonClicked
{
//Calculate the required area from the scrollview

CGRect rect = CGRectMake(50, 50, 200,200);


UIImage *image = [self imageByCropping:imageView1.image toRect:rect];

imageView1.image=image;


imageView1.contentMode = UIViewContentModeScaleAspectFit;


}

这个方法裁剪图像:

- (UIImage*)imageByCropping:(UIImage *)myImage toRect:(CGRect)cropToArea{
CGImageRef cropImageRef = CGImageCreateWithImageInRect(myImage.CGImage, cropToArea);
UIImage* cropped = [UIImage imageWithCGImage:cropImageRef];

CGImageRelease(cropImageRef);
return cropped;
}

最佳答案

我自己的问题的答案:经过许多努力,我找到了我的两个问题的答案。

它对我很有用。我在这里分享,可能对某人有帮助。 :)

1) 使 ImageView 适合 ScrollView 。我用这个link

- (void)centerScrollViewContents {

CGSize boundsSize = scroll.bounds.size;
CGRect contentsFrame = self.imageView1.frame;

if (contentsFrame.size.width < boundsSize.width) {
contentsFrame.origin.x = (boundsSize.width - contentsFrame.size.width) / 2.0f;
}
else {
contentsFrame.origin.x = 0.0f;
}

if (contentsFrame.size.height < boundsSize.height) {
contentsFrame.origin.y = (boundsSize.height - contentsFrame.size.height) / 2.0f;
}
else {
contentsFrame.origin.y = 0.0f;
}

self.imageView1.frame = contentsFrame;
}

2) 在 scrollView 中裁剪缩放图像。我用这个link

    UIGraphicsBeginImageContext(CGSizeMake(200, 200));

[scroll.layer renderInContext:UIGraphicsGetCurrentContext()];

UIImage *fullScreenshot = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

imageView1.contentMode = UIViewContentModeScaleAspectFill;

UIImageWriteToSavedPhotosAlbum(fullScreenshot, nil, nil, nil);

return fullScreenshot;

关于iphone - 在 scrollView 内的 ImageView 中裁剪缩放图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11446355/

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