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

我想拉伸它们,保持边界完整.该resizableImageWithCapInsets方法似乎应该工作,但它平铺图像的内部部分.这不是我想要的.我可以以某种方式使它拉伸图像的内部部分?
我正在开发一个简单的照片和视频捕获应用程序。该应用程序成功允许用户按下按钮即可拍摄照片或视频。但是,一旦完成拍摄照片或视频,它会提供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) 我从服务器得到以下响应:
{
"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)
我怎样才能解决这个问题?
好的,我真的很想找到这个.我是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) 我有一个UIImageView名字bigBottle:
bigBottle.image = [UIImage imageNamed:@"fullBootle.png"];
Run Code Online (Sandbox Code Playgroud)
fullBootle.png 是一个装满100%的瓶子.
我需要两个步骤:
动画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%填满)并且没有模糊的结果图像?
我正在尝试使用目标c以编程方式在iphone模拟器中显示图像,我正在使用以下代码,但它没有在模拟器中显示任何内容
imageview = [[UIImageView alloc] init];
UIImage *myimg = [UIImage imageNamed:@"A1.jpg"];
imageview.image=myimg;
Run Code Online (Sandbox Code Playgroud) 我想在对它进行像素操作之前裁剪UIImage(不是imageview).在ios框架中有可靠的方法吗?
以下是我正在使用的android中的相关方法:
http://developer.android.com/reference/android/graphics/Bitmap.html#createBitmap(android.graphics.Bitmap,INT,INT,INT,INT) http://developer.android.com/reference/android/ graphics/Bitmap.html #createBitmap(int,int,android.graphics.Bitmap.Config)
我试图弄清楚如何旋转图像视图的图像并确定它面向的方向.
我知道我可以像这样旋转UIImageView
imagView.transform = CGAffineTransformMakeRotation(1.57079633);
Run Code Online (Sandbox Code Playgroud) 我还在探索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) 我有一个要求,我需要用指定的半径裁剪UIImage的右上角和右下角.最终输出看起来像图像的核心
你能帮助我吗?
ios ×10
uiimage ×10
objective-c ×9
uiimageview ×3
iphone ×2
crop ×1
memory-leaks ×1
rotation ×1
xcode ×1