我有一个UIImage是UIImageOrientationUp(纵向),我想通过90度逆时针旋转(景观).我不想用CGAffineTransform.我想要UIImage实际转移位置的像素.我正在使用一段代码(如下所示),最初是为了调整大小UIImage来执行此操作.我将目标大小设置为当前大小UIImage但是我得到一个错误:
(错误):CGBitmapContextCreate:无效数据字节/行:对于8个整数位/组件,3个组件,kCGImageAlphaPremultipliedLast,应该至少为1708.
(每当我提供SMALLER尺寸作为目标尺寸BTW时,我都不会收到错误).如何UIImage在保留当前尺寸的同时仅使用核心图形功能旋转我的90度CCW?
-(UIImage*)reverseImageByScalingToSize:(CGSize)targetSize:(UIImage*)anImage
{
UIImage* sourceImage = anImage;
CGFloat targetWidth = targetSize.height;
CGFloat targetHeight = targetSize.width;
CGImageRef imageRef = [sourceImage CGImage];
CGBitmapInfo bitmapInfo = CGImageGetBitmapInfo(imageRef);
CGColorSpaceRef colorSpaceInfo = CGImageGetColorSpace(imageRef);
if (bitmapInfo == kCGImageAlphaNone) {
bitmapInfo = kCGImageAlphaNoneSkipLast;
}
CGContextRef bitmap;
if (sourceImage.imageOrientation == UIImageOrientationUp || sourceImage.imageOrientation == UIImageOrientationDown) {
bitmap = CGBitmapContextCreate(NULL, targetHeight, targetWidth, CGImageGetBitsPerComponent(imageRef), CGImageGetBytesPerRow(imageRef), colorSpaceInfo, bitmapInfo);
} else {
bitmap = CGBitmapContextCreate(NULL, targetWidth, …Run Code Online (Sandbox Code Playgroud) 我有一个UIImage全黑的小符号.将UIImage在自定义设置得到UIButton的子类我.是否可以将图像应用tintColor到图像上,而不是将黑色图像改变为任何颜色tintColor?
我只是想避免创建新资产.
// here I want defaultImageName (that is black) to use the tintColor (that is white)
[self setImage:[UIImage imageNamed:defaultImageName] forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud) 我已经将UIImageView子类化并尝试覆盖drawRect,因此我可以使用Quartz 2D在图像上绘制.我知道这是一个愚蠢的新手问题,但我没有看到我做错了什么.这是界面:
#import <UIKit/UIKit.h>
@interface UIImageViewCustom : UIImageView {
}
- (void)drawRect:(CGRect)rect;
@end
Run Code Online (Sandbox Code Playgroud)
并实施:
#import "UIImageViewCustom.h"
@implementation UIImageViewCustom
- (id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
}
return self;
}
- (void)drawRect:(CGRect)rect {
// do stuff
}
- (void)dealloc {
[super dealloc];
}
@end
Run Code Online (Sandbox Code Playgroud)
我设置了一个断点drawRect并且它从未命中,导致我认为它根本不会被调用.是不是应该在视图首次加载时调用?我错误地覆盖了它吗?
我正在创建一个应用程序,用于UIImagePickerController向用户呈现一个自定义覆盖图,其中包括摄像头"视图"本身上的两个网格/图案之一.
网格本身是一个.png文件,UIImageView它被添加到叠加层中,它们非常复杂,所以我真的想避免在代码中绘制网格,即使这样我会很好地回答我的问题.
我希望能够提供各种颜色的网格.显而易见的解决方案是以不同的颜色创建更多的.png图像,但是对于每种颜色,必须有四个单独的图像(每个网格的常规图像和视网膜图像),这样可以快速累加大量资产.
我认为,理想的解决方案是让我只需创建白色/灰色的网格,然后对其应用色调以对其进行适当的着色.
那可能吗?或者我是否需要寻求替代解决方案?
我尝试在iPhone中显示256种颜色甚至更多颜色
首先,我使用photoshop生成一些简单的颜色png文件
比我将这个png添加到一个数组并将其设置为按钮图片
这就是我现在所做的
这是我如何将颜色添加到数组中的代码
imgArray = [NSArray arrayWithObjects:
[UIImage imageNamed:@"Icon0.png"],
[UIImage imageNamed:@"Icon1.png"],
[UIImage imageNamed:@"Icon2.png"],
[UIImage imageNamed:@"Icon3.png"],
[UIImage imageNamed:@"Icon4.png"],
[UIImage imageNamed:@"Icon5.png"],
nil];
Run Code Online (Sandbox Code Playgroud)
比我添加到按钮图像
这是我的模拟器上的结果,但这不是一个好的解决方案

它浪费了太多时间来添加png文件(也浪费了iphone内存......)
有谁能帮我解决这个问题???
非常感谢 : )
我正在寻找一种简单有效的方法来为NSImage中包含的任何图标赋予特殊色调.我最初需要id有棕褐色图标但如果可以使用其他颜色则更好.
你有什么想法实现这个目标吗?
在此先感谢您的帮助,
问候,
objective-c ×6
ios ×4
iphone ×2
uiimage ×2
uikit ×2
cocoa ×1
cocoa-touch ×1
colors ×1
nsimage ×1
uibutton ×1
uiimageview ×1