Guten Tag,
ich möcht aus einen UIImage den Mund ausschneiden. Dazu habe ich folgenden Code geschrieben:
Alles anzeigen
Nur leider funktioniertr der Code nicht richtig. Das Bild wird nie am Mundanfang ausgeschnitten, sondern immer weiter links oder weiter rechts. Manchmal wird auch einfach nur ein schwarzes Bild bzw. nur die Augen angezeigt. Was mache ich falsch? Eigentlich braucht man ja die X-Koordinate nicht umzurechnen. Aber wenn ich diese nicht umrechne wird statt den Mund das Ohr ausgeschnitten.
Vielen Dank im Voraus
Nils
ich möcht aus einen UIImage den Mund ausschneiden. Dazu habe ich folgenden Code geschrieben:
Quellcode
- //transform Image
- CGFloat xBounds = feature.bounds.origin.x;
- CGFloat yBounds = cameraView.image.size.height - feature.bounds.origin.y - feature.bounds.size.height;
- CGFloat heightBounds = feature.bounds.size.height;
- CGFloat widthBounds = feature.bounds.size.width;
- UIImage *transformImage = cameraView.image;
- CGSize size = CGSizeMake(widthBounds, heightBounds);
- UIGraphicsBeginImageContext(size);
- [transformImage drawInRect:CGRectMake(-xBounds, -yBounds, cameraView.image.size.width, cameraView.image.size.height)];
- UIImage *endImage = UIGraphicsGetImageFromCurrentImageContext();
- UIGraphicsEndImageContext();
- //cut Mouth
- UIImage *mouthImage;
- if (feature.hasMouthPosition) {
- CGFloat mouthWidth = endImage.size.width * 0.5;
- CGFloat mouthHeight = endImage.size.height * 0.5;
- CGSize mouthSize = CGSizeMake(mouthWidth, mouthHeight);
- UIGraphicsBeginImageContext(mouthSize);
- CGPoint mouthPoint;
- mouthPoint.x = endImage.size.width - feature.mouthPosition.x ;
- mouthPoint.y = endImage.size.height - feature.mouthPosition.y;
- [endImage drawInRect:CGRectMake(-mouthPoint.x, -mouthPoint.y, endImage.size.width, endImage.size.height)];
- mouthImage = UIGraphicsGetImageFromCurrentImageContext();
- cameraView.image = mouthImage;
- image = [mouthImage CIImage];
- UIGraphicsEndImageContext();
- }
Nur leider funktioniertr der Code nicht richtig. Das Bild wird nie am Mundanfang ausgeschnitten, sondern immer weiter links oder weiter rechts. Manchmal wird auch einfach nur ein schwarzes Bild bzw. nur die Augen angezeigt. Was mache ich falsch? Eigentlich braucht man ja die X-Koordinate nicht umzurechnen. Aber wenn ich diese nicht umrechne wird statt den Mund das Ohr ausgeschnitten.
Vielen Dank im Voraus
Nils