Gehen Sie wie von Cirrostratus beschrieben vor, behalten Sie eine zwischengespeicherte Kopie und wenden Sie eine Transformation an, um die Größe und/oder Position des Bildes beim Ziehen zu ändern.
(Warnung, dies ist nicht funktionsfähig/getesteten Code, sollte aber loszulegen)
-(UIImage*)addGlowToImage:(UIImage*)imageInput;
{
CGRect newSize = imageInput.bounds;
CGImageRef theImage = imageInput.CGImage;
// expand the size to handle the "glow"
newSize.size.width += 6.0;
newSize.size.height += 6.0;
UIGraphicsBeginImageContext(newSize);
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextBeginTransparencyLayerWithRect(ctx, newSize, NULL);
CGContextClearRect(ctx, newSize);
// you can repeat this process to build glow.
CGContextDrawImage(ctx, newSize, theImage);
CGContextSetAlpha(ctx, 0.2);
CGContextEndTransparencyLayer(ctx);
// draw the original image into the context, offset to be centered;
CGRect centerRect = inputImage.bounds;
centerRect.origin.x += 3.0;
centerRect.origin.y += 3.0;
CGContextDrawImage(ctx, centerRect, theImage);
result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return result;
}
in Ihrer Methode Dann, während Skalierung Sie möchten etwas tun:
// assumes UIImage *cachedImage = [self addGlowToImage:origImage]; has been called already.
// assumes ivars for scale exists
CGRect newRect = cachedImage.bounds;
newRect.size.width += scale;
newRect.size.height += scale;
[cachedImage drawInRect:newRect]; // image will be scaled to fill destination rectangle.
Auf jeden Fall ein nehmen Schau dir die Apple Docs an. Ein guter Startplatz ist die Quartz 2D Programming Guide.
In Ordnung, nicht genau das, was ich wollte, aber ich werde akzeptieren, ich wollte ein Fade. – Jaba
Sie können die Eigenschaft shadow auch als Glühen verwenden, wenn Sie die Farbe ändern. Simpel und einfach. – zekel
Dieser Code ist in vielerlei Hinsicht falsch ... –