Comment dessiner un image histogram d'un UIImage sur iPhone par programme? .: par exemple Comment dessiner un histogramme d'un UIIMage par programme?

Merci!
Comment dessiner un image histogram d'un UIImage sur iPhone par programme? .: par exemple Comment dessiner un histogramme d'un UIIMage par programme?
Merci!
En fait, il y a, je vais vous adresser à la réponse de Brad Larson: https://stackoverflow.com/a/10359305/300115
Vous pouvez trouver la GPUImageHistogramFilter de classe dans sa bibliothèque: https://github.com/BradLarson/GPUImage
La démonstration « Filter Showcase » dans le répertoire lib a déjà version de travail d'une analyse d'histogramme en direct.
Il n'y a pas d'API pour ça.
Modifier: Une API a été introduite avec iOS5. Voir la réponse de Kelin.
Vous souhaitez obtenir les données brutes de l'image, compter les valeurs de couleur et dessiner l'histogramme vous-même.
accès aux pixels: How to get pixel data from a UIImage (Cocoa Touch) or CGImage (Core Graphics)?
Utilisez CoreGraphics pour dessiner l'histogramme dans une sous-classe UIView personnalisé.
Vous pourriez être intéressé par DSBarChart. Essaie.
Plutôt que de simplement créer un lien vers votre projet open source, pourriez-vous fournir un exemple plus détaillé de la manière dont vous utiliseriez votre projet pour créer un histogramme comme celui-ci? Cela pourrait mieux aider les gens qui regardent votre cadre pour cela. –
Vous pouvez calculer l'histogramme à l'aide de Accélérer. Il y a la fonction vImageHistogramCalculation_ARGB8888()
. Pour appeler cette fonction, vous devez créer vImage_Buffer à partir de UIImage. Utilisez la fonction vImageBuffer_InitWithCGImage()
pour cela.
Pour plus d'informations, vous pouvez ajouter ce cadre à votre projet et lire docs dans les fichiers d'en-tête:
Accelerate.framework/Cadres/vImage.framework/têtes/vImage_Utilities.h Accelerate.framework/Cadres/vImage .framework/Headers/Histogram.h
Je ne suis pas d'accord avec votre affirmation selon laquelle il n'y a pas d'API. Vois ma réponse. – kelin
@kelin Vous avez raison. Cette API a été introduite 1 an après ma réponse. Donc ce n'est pas vraiment en désaccord, mais en train de mettre à jour. J'ai modifié ma réponse et augmenté la vôtre. – tonklon