jjzjj

CGContextDrawImage

全部标签

ios - 为什么我的 CGImage 在 setNeedsDisplay 后不能正确显示

我正在我的应用程序中绘制一个colorWheel。为此,我在一个单独的函数中生成一个CGImage,并在drawRect中使用CGContextDrawImage将其显示在屏幕上。在初始演示中它看起来不错,但在我调用setNeedsDisplay(或setNeedsDisplayInRect)后图像变黑/变形。我一定是在做一些愚蠢的事情,但看不到什么。DrawRect代码如下:overridefuncdrawRect(rect:CGRect){ifletcontext=UIGraphicsGetCurrentContext(){letwheelFrame=CGRectMake(0,0,

ios - 为什么 PNG 图像在 UIImageView 中调整大小并显示得很好,但当我用 CGContextDrawImage 绘制时质量不佳

我有一个PNG(52x52)图像文件,如果我在UIImageView(16x16)中显示它,它显示良好。但是如果我尝试使用CGContextDrawImage来绘制,质量很差。请看下面的详细代码:resizeImage用于调整图像大小(从苹果网站复制)。drawStonesPng用于绘制图像并调用表单CALayer::drawInContext-(UIImage*)resizeImage:(UIImage*)imagetoWidth:(NSInteger)widthheight:(NSInteger)height{//Createagraphicscontextwiththetarge

iOS UIImage.drawInRect(CGContextDrawImage) 性能

我有一个应用程序可以让用户操作文本、图像、形状(矢量图像)等项目。它们堆叠在一起,就像Photoshop中的图层一样。操纵意味着平移、调整大小、旋转。我使用drawInRect来绘制我所有的项目。不幸的是,在绘制图像时我发现性能很差-这是使用分析器检查代码后的结论。根据我在网上阅读的内容,人们建议使用单独的UIView(UIImageView)来绘制所有图像,而使用普通的drawInRect其他内容在单独的View中。但是这种方法会有问题,因为我可能会遇到这样的情况:背面有2层文字1层带有图像-遮挡部分文本前面有2层,文字在图像顶部这意味着我必须为前2个文本层制作一个UIView,为中

ios - 缩放 UIImage 以与 CGContextDrawImage 一起使用

我有一张尺寸为480pxx480px的图像,我想使用CGContextDrawImage将其显示在尺寸为375pxx375px的View中,如下所示。目前图像无法缩放以适合View-它是以全尺寸绘制的。请问如何调整下面的代码以缩放图像以适合View?self.image=[UIImageimageNamed:@"image2.png"];CGContextReflayerContext=CGLayerGetContext(drawingLayer);CGContextSaveGState(layerContext);UIGraphicsBeginImageContext(self.vi

ios - 为什么使用 CGContextDrawImage 旋转图像比绘制旋转的 UIImage 慢得多?

我从相机获取图像,我必须考虑到它们处于不同的方向。我采用的第一种方法是使用thiscodesnippet创建一个正确旋转的UIImage。计算CGAffineTransform,然后使用CGContextDrawImage绘制图像。但是,此操作需要2-3秒才能完成。我采用的第二种方法是计算我必须将图像旋转多少度以及是否必须翻转它,然后在绘制UIImage之前应用这些旋转.这种方法花费的时间可以忽略不计。具体来说,我使用的是Cocos2D,所以无论哪种情况,我都将UIImage转换为CCTexture2D,创建了一个具有该纹理的Sprite,然后绘制它.在第一种情况下,我创建了一个新的U

iphone - UIGraphicsBeginImageContextWithOptions 中的 CGContextDrawImage 忽略了 UIEdgeInsets

在绘制到屏幕外缓冲区时,我很难让ImageInsets正常工作。在UIImage上直接使用resizableImageWithCapInsets:setImage:intoabutton对我来说效果很好:UIImage*base=[UIImageimageNamed:@"button.png"];UIImage*img=[baseresizableImageWithCapInsets:UIEdgeInsetsMake(20,20,20,20)];[selfsetImage:imgforState:UIControlStateNormal];如下图(左边是原始缩放,右边是用插图缩放):所

ios - 与 CGContextDrawImage 相比,为什么 UIImageView 如此占用内存

开发iPadPDF阅读器时,我们决定准备渲染密集型页面(其中有很多路径)的高分辨率图像,并使用这些图像代替pdf页面以避免性能问题。我们认为3*768x3*1024是可读性和渲染性能之间的一个很好的折衷,这导致~1.5MBjpeg。但是,我们测试了显示图像页面的两种实现方式。一个使用CATiledLayer子类,该子类还负责处理“普通”PDF页面(使用CGContextDrawImage绘制),另一个使用UIImageView。后者的优点是显示和缩放非常快,但内存使用率非常差-大约需要30MB内存(这与图像的位图大小一致)。另一种方法(CATiledLayer)需要更多时间来首次显示页

ios - 使用 UIImage 和其他属性创建自定义图像

我想在iOS中创建自定义图像。例如,该图像将用于分享到社交网站。例如,用户可能会选择我们作为UIImage引用的照片。使用此图像,我们想创建另一个包含原始图像的图像。这个想法是创建一个宝丽来风格的图像,底部有一些文字/文字。实现这一目标的最佳方法是什么?我的第一个想法是创建一个XIB来控制布局并初始化这个屏幕外,使用快照创建完成的UIImage和deallocView。或者使用CGContextDrawImage会更好吗?担心的是布局,如果我们有多个需要特定布局的项目,上下文绘制将很容易完成 最佳答案 我能够在下面创建这张图片:Po

ios - CGContextDrawImage (Swift) 上的间歇性 "incorrect checksum for freed object"错误

我的应用程序确实遇到过一次罕见的崩溃-在我将UIImage转换为像素数组以便我可以一个一个地处理像素的方法中时不时发生(它是一个着色书应用程序)。我的转换代码如下init(image:UIImage){letimageref=image.CGImageself.width=CGImageGetWidth(imageref)self.height=CGImageGetHeight(imageref)//createnewbitmapcontextletbitsPerComponent=UInt(8)letbytesPerPixel=UInt(4)letbitsPerPixel=bitsP

ios - 使用 CGContextDrawImage 旋转图像

如何在中心旋转由CGContextDrawImage()绘制的图像?在drawRect:CGContextSaveGState(c);rect=CGRectOffset(rect,-rect.size.width/2,-rect.size.height/2);CGContextRotateCTM(c,angle);CGContextDrawImage(c,rect,doodad.CGImage);CGContextRotateCTM(c,-angle);CGContextTranslateCTM(c,pt.x,pt.y);prevRect=rect;CGContextRestoreGS