162 votes

Centre de culture Android de Bitmap

J’ai des images bitmap qui est des carrés ou des rectangles. Je prends le côté le plus court et faire quelque chose comme ceci :

Puis j’ai redimensionnez-la pour 144 x 144 Bitmap en utilisant ce :

Problème est qu’il les cultures le coin supérieur gauche de l’image bitmap original, quelqu'un a le code pour le centre de l’image bitmap des cultures ?

373voto

Lumis Points 10300

enter image description here

Ceci peut être réalisé avec : Bitmap.createBitmap (source, x, y, largeur, hauteur)

344voto

DiscDev Points 8087

Alors que la plupart des réponses ci-dessus fournissent un moyen pour ce faire, il est déjà intégré dans la façon d'accomplir cela et c'est 1 ligne de code...

//Change 400, 400 to whatever width/height you want to use
//or calculate it as necessary.
bitmap = ThumbnailUtils.extractThumbnail(bitmap, 400, 400);

Si vous souhaitez que l'objet bitmap à être recyclé, vous pouvez passer des options qui le rendent si:

bitmap = ThumbnailUtils.extractThumbnail(bitmap, 400, 400, ThumbnailUtils.OPTIONS_RECYCLE_INPUT);

De: ThumbnailUtils Documentation

public static Bitmap extractThumbnail (Bitmap source, int largeur, int hauteur)

Ajout de l'API de niveau 8 Crée un centré bitmap de la taille désirée.

Paramètres de la source de l'image d'origine de la source de la largeur ciblées largeur la hauteur ciblée hauteur

J'ai été faire des erreurs de mémoire insuffisante parfois lors de l'utilisation de la accepté de répondre, et à l'aide de ThumbnailUtils résolu ces questions pour moi. De Plus, c'est beaucoup plus propre et plus réutilisable.

13voto

Ovidiu Latcu Points 20783

Avez-vous pensé à faire de la ? Vous pourrez choisir votre le ScaleType à et définir les dimensions de l’image dans le à l’intérieur de la `` .

9voto

willsteel Points 2318

Voici un extrait plus complète qui affleure le centre d’un [bitmap] de dimension arbitraire et échelles le résultat à votre désirée [IMAGE_SIZE]. Ainsi, vous obtiendrez toujours un carré [croppedBitmap] mis à l’échelle du pôle image avec une taille fixe. idéal pour miniatures et autres.

Sa combinaison plus complète des autres solutions.

9voto

Hitesh Patel Points 1195

Vous pouvez utilisé code suivant qui peut résoudre votre problème.

Au-dessus de la méthode ne postScalling d’image avant recadrage, ainsi vous pouvez obtenir le meilleur résultat avec image recadrée sans faire d’erreur OOM.

Pour plus de détails vous pouvez consulter ce blog

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X