Hey Leute!
Ich versuche gerade, in ein Bild ein anderes hinein zu speichern.
Das eine Bild kommt aus einem QRCode Generator. Da ich schon Text hinzufüge, habe ich CGContextRef und so weiter parat.
Ich bekomme auch das Bild angefügt, allerdings nicht so, wie es sein soll.
Da sich das Seitenverhältnis des Bildes durchaus ändern kann, habe ich eine UIImageView genommen, um das Bild an der richtigen Stelle zu platzieren.
Um das Verhältnis beizubehalten verwende ich folgenden Code:
Alles anzeigen
An dieser Stelle wollte ich die UIImageView drehen, allerdings verändert sich GAR nichts, das Bild bleibt ungedreht:
Wenn ich jetzt das versuche, Bild mit dem gleichen Frame, den es schon hat, in den UIGraphicsGetImageFromCurrentImageContext zuschreiben, verzerrt sich das Bild total und ist nicht mehr zu gebrauchen:
Kann mir vielleicht jemand von euch an dieser Stelle ein wenig zur Hand gehen?
Was hab ich vergessen bzw. wo liegt mein Denkfehler?
Vielen Dank und herzliche Grüße
Julian
Ich versuche gerade, in ein Bild ein anderes hinein zu speichern.
Das eine Bild kommt aus einem QRCode Generator. Da ich schon Text hinzufüge, habe ich CGContextRef und so weiter parat.
Ich bekomme auch das Bild angefügt, allerdings nicht so, wie es sein soll.
Da sich das Seitenverhältnis des Bildes durchaus ändern kann, habe ich eine UIImageView genommen, um das Bild an der richtigen Stelle zu platzieren.
Um das Verhältnis beizubehalten verwende ich folgenden Code:
Quellcode
- CGFloat imageFullSize = [[NSNumber numberWithInteger:[[NSUserDefaults standardUserDefaults] integerForKey:@"QRSize"]] floatValue];
- CGFloat imagePartSize90 = (imageFullSize / 100) * 90;
- CGFloat imagePartSize10 = (imageFullSize / 100) * 10;
- CGFloat imagePartSize05 = (imageFullSize / 100) * 05;
- UIGraphicsBeginImageContext(CGSizeMake(imageFullSize, imageFullSize));
- [[UIImage imageNamed:@"qrCodeImage.png"] drawAtPoint:CGPointMake(imagePartSize10, 0)];
- /////////////////////////////////////
- // HIER BEGINNT DER RELEVANTE CODE //
- /////////////////////////////////////
- UIImageView *projView = [[UIImageView alloc] init];
- [projView setFrame:CGRectMake(imagePartSize05, (imageFullSize / 2) - (imagePartSize90 / 2), imagePartSize90, imagePartSize10)];
- [projView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];
- [projView setContentMode:UIViewContentModeScaleAspectFit];
- [projView setImage:projImage];
An dieser Stelle wollte ich die UIImageView drehen, allerdings verändert sich GAR nichts, das Bild bleibt ungedreht:
Wenn ich jetzt das versuche, Bild mit dem gleichen Frame, den es schon hat, in den UIGraphicsGetImageFromCurrentImageContext zuschreiben, verzerrt sich das Bild total und ist nicht mehr zu gebrauchen:
Quellcode
- [projView drawRect:CGRectMake(imagePartSize05, (imageFullSize / 2) - (imagePartSize90 / 2), imagePartSize90, imagePartSize10)];
- docData = UIImageJPEGRepresentation(UIGraphicsGetImageFromCurrentImageContext(), [[NSUserDefaults standardUserDefaults] integerForKey:@"QRQuality"]);
- UIGraphicsEndImageContext();
Kann mir vielleicht jemand von euch an dieser Stelle ein wenig zur Hand gehen?
Was hab ich vergessen bzw. wo liegt mein Denkfehler?
Vielen Dank und herzliche Grüße
Julian