Ich verwende CICrop, um ein Bild auf eine bestimmte Größe zuzuschneiden, indem ich den oberen und unteren Teil des Bildes abschneide.
Anschließend wende ich etwas wie den Filter CIMultiplyCompositing an, um das beschnittene Bild mit einem anderen Bild zu kombinieren.
Beide Bilder haben die gleiche Größe, aber das Ergebnis zeigt, dass die beiden Bilder nicht übereinstimmen... eines ist versetzt.
Ich habe also Folgendes überprüft:
NSLog(@"image after crop: %g, %g, %g, %g", imageToFilter.extent.origin.x,
imageToFilter.extent.origin.y,
imageToFilter.extent.size.width,
imageToFilter.extent.size.height);
NSLog(@"second image: %g, %g, %g, %g", secondImage.extent.origin.x,
secondImage.extent.origin.y,
secondImage.extent.size.width,
secondImage.extent.size.height);
Das zeigt, dass der origin.y des beschnittenen Bildes den Versatz hat, den ich sehe (ein Ergebnis der Verwendung von CICrop):
image after crop: 0, 136, 3264, 2176
second image: 0, 0, 3264, 2176
Gibt es also eine Möglichkeit für mich, das "extent"-Rect des beschnittenen Bildes zurückzusetzen, so dass origin.y Null ist? Überprüfen Sie die Dokumente für CIImage, "Ausmaß" ist eine nur lesen Eigenschaft.
Oder werde ich einige schrecklich ineffiziente Konvertierung zu einem anderen Bildtyp/Rohdaten und dann zurück zu einem CIImage tun müssen?
Danke für jeden Rat.