标签: uiimage

如何用端盖拉伸(而不是平铺)UIImage

我在界面中有一些图像,里面有边框和一些背景.有点像这样:

图片示例

我想拉伸它们,保持边界完整.该resizableImageWithCapInsets方法似乎应该工作,但它平铺图像的内部部分.这不是我想要的.我可以以某种方式使它拉伸图像的内部部分?

objective-c uiimage ios

0
推荐指数
1
解决办法
417
查看次数

UIImagePickerController允许我拍摄照片和视频,但不允许我保存或“使用”它们

我正在开发一个简单的照片和视频捕获应用程序。该应用程序成功允许用户按下按钮即可拍摄照片或视频。但是,一旦完成拍摄照片或视频,它会提供2个选项:“重新拍摄”和“使用照片”或“使用视频”,具体取决于您使用的是哪个。

如果用户点击“重新拍摄”,则只是让他们重新拍摄新照片或视频,但是当用户点击“使用照片”或“使用视频”时,它什么也不做。该应用程序仅将它们带回主应用程序屏幕。

我对如何访问“使用照片” /“使用视频”按钮感到困惑,以便我可以编辑它的代码并将其保存到相机胶卷中。

这是我到目前为止的代码:

ViewController.h:

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController <UINavigationControllerDelegate, UIImagePickerControllerDelegate>

@property UIImagePickerController * pickerController;

-(IBAction)showCameraUI;

@end
Run Code Online (Sandbox Code Playgroud)

ViewController.m:

#import "ViewController.h"


@interface ViewController () <UINavigationControllerDelegate, UIImagePickerControllerDelegate>

@end

@implementation ViewController

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

[UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera];
[UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];

NSLog(@"%ld", (long)UIImagePickerControllerSourceTypeCamera); }

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

-(IBAction)showCameraUI{

UIImagePickerController * pickerController = [[UIImagePickerController alloc]init];

pickerController.mediaTypes = …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uiimagepickercontroller uiimage ios

0
推荐指数
1
解决办法
4591
查看次数

使用NSData不形成UIImage对象

我从服务器得到以下响应:

{
    "userId": "72e823ebc0c07fa99f279d6435e2c6ce",
    "userHash": null,
    "md5": "e993b7e9ec74bcdc1b1b7baec7d1cdd2",
    "highres": null,
    "thumbnail": "/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0
Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAyADIDASIAAhEBAxEB/
8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2Jygg
kKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytL
T1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJ
BUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZa
XmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD0CfRbZY3IzuAyOak0nTLOW0UzBt+e
cGpppcxvg87ajt76Cw0R7uVC3lgtj1rREMvtpVijo6q+5fu81Wu/EGmeFFMlwTiTkgHmnadqqanYwXqL5ayDIU9q8C8ceILq+8QXUU0haOFyqgelVo9xHu1v8U9BuLhIlM
g3fxHGBXWf2pYmAzLdRMgXdw4NfImmQXN1bNIHKQbsbj616DpdvcQ6RHsnLfNyc1jNpbGqi+p6+fHOmgkbJePaivMvN9jRWPOyuU6Rb9ZbaTyn3Ng4Feaaj48utIuNQ0
+6gaaOZNiKT/q/etvSPEEN1qr2dsoMAXcJMdTXJ61aaLe+K7v+2b1rSIAbSozmutbmD2Lnhzxvq2h26me1e6tZB+7JPCCuauBHqGvTXV04hjuHL4Pato+CdcvlWTSZGn0w/
wCpdmxkV01v8IIZbWOa51NhPtyybhhT6U7Kw07M56xvbGK3NpFGrpuyYx39627PXoJrmSwtYgFij35Hc+ldX4L8IDStMvoryxtpk2vtuHYbhxxXiVrcTaZ4gujAxk3uynJ6DN
YOkbqonY7I+KLgEj+zz+dFZWQeTIaKz9ia3j3I9F1+8e2ElrDArg5cnj5awdfli1PUJbqR/vDtWTBev9i+zKSOc5FUHDocFifxrpujiOoj8b6vDpkelQymOCIbUKNg4qEajrcoBW/
uMe8hrnIpPLmRm6A1urq8JRRtORTTBov2q+JtRlFtb6jcDdxgykA1txfC3xRBKks3kruIO5nxmsrRdVd7sKgwi/MD7ivZ/C+taV490waVq8rRX0XKurbQQOlS2UkcaPh5reB+
9tf+/gor0j/hVqZ4upsf9dDRSuOx8q2v3z9KJetFFBmyCTotSRfdNFFNF9Do/DvR/oa2vCrMPEdphiP346H3oopD6H1un+rX6CiiipGf/9k="
}
Run Code Online (Sandbox Code Playgroud)

缩略图是一个字节数组,我想将其转换为NSData,然后转换为UIImage.

当我执行以下操作时,我最终得到的是:

  NSData *pictureData = [NSData dataWithBytes:[updatedData objectForKey:@"thumbnail"]];

  UIImage *img = [[UIImage alloc] initWithData:pictureData];
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

uiimage ios

0
推荐指数
1
解决办法
349
查看次数

请帮我在这个Objective-C方法(iOS)中找到s内存泄漏

好的,我真的很想找到这个.我是Objective-C的新手,并且没有足够的指针管理经验.我知道这里有一个重要的内存泄漏,因为多次执行此代码会导致一堆内存警告,但找不到它或如何解决它.

下面的方法从固定数组中获取一些数据并从中创建一组图像.它正在更新固定数量的图像,但只有第一个'n'计数,所以其余部分都填充了透明的小图像(以清除之前的图像).

(我怀疑每次执行都会创建UIImages,因为执行期间内存消耗过快.)

我已经尝试添加到该行

UIImage* img = [UIImage imageWithCGImage:image];
Run Code Online (Sandbox Code Playgroud)

自动释放,因为我怀疑每次调用此代码时都会创建图像,并且我认为当routeView [indexAux] .image指向新创建的图像时应该调用自动释放.我认为这可行,但它最终以"发送到解除分配的实例的消息"错误结束.

还尝试用以下代码替换该部分:

UIImage* img = [UIImage imageWithCGImage:image];
routeView[indexAux].image = [img copy];
[img release];
Run Code Online (Sandbox Code Playgroud)

...因此,已故的img变量的唯一现有副本存在于routeView [i] .image中,并最终被下一次执行所覆盖.但结束了同样的内存泄漏.欢迎提供任何帮助或提示.提前致谢!

-(void) update:(NSArray*) arr{
    int indexAux = 0;
    for(NSNumber* i in arr){
        int index = [i integerValue];
        CGContextRef context =  CGBitmapContextCreate(nil,
                                                  routeView[indexAux].frame.size.width,
                                                  routeView[indexAux].frame.size.height,
                                                  8,
                                                  4 * routeView[indexAux].frame.size.width,
                                                  CGColorSpaceCreateDeviceRGB(),
                                                  kCGImageAlphaPremultipliedLast);

        self.lineColor = [coloresDeSeccion[index] copy];

        CGContextSetStrokeColorWithColor(context, self.lineColor.CGColor);
        CGContextSetRGBFillColor(context, 0.0, 0.0, 1.0, 1.0);
        CGContextSetLineWidth(context, 5.0);

        for(int i = sections[index]; i <= sections[index + 1]; i++) {
            CLLocation* …
Run Code Online (Sandbox Code Playgroud)

memory-leaks memory-management objective-c uiimage ios

0
推荐指数
1
解决办法
115
查看次数

使用动画从完整的UIImage填充UIImageView的百分比

我有一个UIImageView名字bigBottle:

bigBottle.image =  [UIImage imageNamed:@"fullBootle.png"];
Run Code Online (Sandbox Code Playgroud)

fullBootle.png 是一个装满100%的瓶子.

我需要两个步骤:

  1. 首先用百分比制作一幅图像(比如50%填充) - 也就是说,从底部填充一半的瓶子).
  2. 动画bigBottle从瓶子的下方爬行填充效果到50%填充.我的代码如下:

    CGRect captureRect = CGRectMake(0,22,18,72);
    UIImage *captureImg;
    UIGraphicsBeginImageContext(captureRect.size);
    CGContextRef context = UIGraphicsGetCurrentContext();
    [self.bigBottle.layer renderInContext:context];
    captureImg = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    self.bigBottle.image = [UIImage imageWithCGImage:CGImageCreateWithImageInRect(captureImg.CGImage,
    captureRect)];
    CGRect captureRect1 = CGRectMake(0,37,18,72);
    self.bigBottle.frame=CGRectMake(45, 174,18,1);
    CGRect newFrameOfMyView1 = CGRectMake(45,129, 18, 45);
    [UIView animateWithDuration:3.0f
        animations:^{
            self.bigBottle.frame = newFrameOfMyView1;
        }
        completion:^(BOOL finished){
            NSLog( @"done bottle: 1" );
    }];
    
    Run Code Online (Sandbox Code Playgroud)

另一种方法是让这个装瓶的动画更加简单,内存效率更高?我有几十个瓶子随机填充百分比(让我们说瓶子80是20%填满)并且没有模糊的结果图像?

objective-c uiimageview uiimage ios

0
推荐指数
1
解决办法
1879
查看次数

如何使用目标C在iphone模拟器中显示图像

我正在尝试使用目标c以编程方式在iphone模拟器中显示图像,我正在使用以下代码,但它没有在模拟器中显示任何内容

imageview = [[UIImageView alloc] init];
UIImage *myimg = [UIImage imageNamed:@"A1.jpg"];
imageview.image=myimg;
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uiimage ios

0
推荐指数
1
解决办法
3712
查看次数

0
推荐指数
1
解决办法
310
查看次数

旋转UIImage

我试图弄清楚如何旋转图像视图的图像并确定它面向的方向.

我知道我可以像这样旋转UIImageView

imagView.transform = CGAffineTransformMakeRotation(1.57079633);
Run Code Online (Sandbox Code Playgroud)

objective-c rotation uiimageview uiimage ios

0
推荐指数
1
解决办法
735
查看次数

以编程方式更改UIImage的Alpha

我还在探索xCode/Objective-C,我想知道如何能够改变UIImage的alpha.我尝试编写自己的代码,但是在UIImage类型的对象上找不到错误'Property'alpha'.如果我注释掉alpha变化线,则启动画面会起作用.我的代码如下.

//
//  ViewController.m

#import "ViewController.h"

@interface ViewController ()

@property (nonatomic,weak) IBOutlet UIImage *logo;

@end

@implementation ViewController

ADBannerView *_bannerView;
- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.view addSubview:_bannerView];

    [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(showLogo:) userInfo:nil repeats:NO];

}

- (void)showLogo:(NSTimer *) timer{
    [UIView animateWithDuration:2.0 animations:^{
    self.logo.alpha = 1.0;
} completion:^(BOOL finished){

    [UIView animateWithDuration:2.0 animations:^{
        self.logo.alpha = 0.0;
    } completion:^(BOOL finished){
        ViewController *controller  = [self.storyboard instantiateViewControllerWithIdentifier:@"Menu"];
        [self.navigationController pushViewController:controller animated:YES];
    }];

}];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated. …
Run Code Online (Sandbox Code Playgroud)

xcode splash-screen objective-c uiimage ios

0
推荐指数
1
解决办法
7605
查看次数

如何裁剪UIImage以获得圆形核心

我有一个要求,我需要用指定的半径裁剪UIImage的右上角和右下角.最终输出看起来像图像的核心

在此输入图像描述

你能帮助我吗?

objective-c uiimageview uiimage ios

0
推荐指数
1
解决办法
136
查看次数