ich den folgenden Code verwende (aus einem Blog-Post) ein BildBild der Größe verändert Fehler: CGBitmapContextCreate: nicht unterstützte Parameter
if (inImage.size.width <= inImage.size.height) {
// Portrait
ratio = inImage.size.height/inImage.size.width;
resizedRect = CGRectMake(0, 0, width, width * ratio);
}
else {
// Landscape
ratio = inImage.size.width/inImage.size.height;
resizedRect = CGRectMake(0, 0, height * ratio, height);
}
CGImageRef imageRef = [inImage CGImage];
CGImageAlphaInfo alphaInfo = CGImageGetAlphaInfo(imageRef);
if (alphaInfo == kCGImageAlphaNone)
alphaInfo = kCGImageAlphaNoneSkipLast;
CGContextRef bitmap = CGBitmapContextCreate(
NULL,
resizedRect.size.width, // width
resizedRect.size.height, // height
CGImageGetBitsPerComponent(imageRef), // really needs to always be 8
4 * resizedRect.size.width, // rowbytes
CGImageGetColorSpace(imageRef),
alphaInfo
);
aber aus irgendeinem Grund, um die Größe abhängig von der Größe Ich versuche mich, um die Größe zu ich der folgende Fehler wird generiert
CGBitmapContextCreate: unsupported parameter combination: 8 integer bits/component; 32 bits/pixel; 3-component colorspace; kCGImageAlphaNoneSkipFirst; XXX bytes/row.
wobei XXX je nach dem Bild unterscheidet.
Das Rechteck, das ich erschaffe, ist proportional zum Bild, ich nehme ein Verhältnis von der Breite/Höhe (abhängig vom Aspekt) und dem Vielfachen, das die Zielbreite/-höhe sein soll.
Hier sind einige Beispiele (X Fehler,/tut), wird die Größe ändern Größe 50xx oder Xx50 sein, je nach Aspekt:
Source 50x50 69x69
430x320/ X
240x320/ /
272x320/ /
480x419/ X
426x320 X X
480x256 X X
ja (Kopieren und Einfügen Fehler Formatierung es als Frage) ja ich stimme resizedRect.size.width wird wahrscheinlich ein Gleitkomma sein. Könntest du ein wenig mehr erklären, muss ich nur auf Ganzzahl runden? –
Bitte aktualisieren Sie einfach Ihre Antwort, ich habe nur die 3 Verwendungen der Werte zu int umgewandelt und es sortiert das Problem. (int) resizedRect.size.width usw. –
Ich habe meine Antwort mit mehr Details bearbeitet. – Ken