begin process at 2013 05 23 03:09:40
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > RÉDUCTION DE LA TAILLE D'UNE IMAGE

RÉDUCTION DE LA TAILLE D'UNE IMAGE


 Information sur la source

Note :
Aucune note
Catégorie :API Classé sous :réduction, simple, image Niveau :Initié Date de création :22/07/2012 Vu / téléchargé :1 925 / 198

Auteur : jacques-antoine

Ecrire un message privé
Site perso
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Cette application reprend une fonctionnalité présente dans un autre source de mon cru et déposée ici-même: le répertoire. Son utilisation est simple : on affiche une image et on demande sa réduction. Une sauvegarde de l'image réduite est possible, mais uniquement au format BMP (la visionneuse Windows sait très bien faire les conversions). Au besoin, on peut aller chercher dans les codes disponibles ici ce qu'il faut pour sauvegarder l'image dans un autre format. Ici, l'astuce a consisté à déporter vers VB la conversion au lieu de se casser la tête à trouver des formules alambiquées, du moins quand on peut se contenter du résultat obtenu, lequel n'est pas si vilain.


 Conclusion

Ben, ça devrait servir à ceux qui s'em..mouscaillent à trouver des formules alors que la solution existe déjà.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip APPLICATIONS DE SUIVI DE LA GLYCÉMIE POUR LES DIABÉTIQUES
Source avec Zip UN RÉPERTOIRE TÉLÉPHONIQUE PERSONNEL, PUISSANT ET INTUITIF
Source avec Zip ENTRETIEN D'IMPRIMANTE, VERSION PARAMÉTRÉE
Source avec Zip IMPRESSION D'ENTRETIEN DE L'IMPRIMANTE
Source avec Zip ENTRETIENT D'IMPRIMANTE

 Sources de la même categorie

Source avec une capture Source .NET (Dotnet) CLASSE D'UTILISATION DU SERVICE DE TRADUCTION MICROSOFT BING par blq
Source avec Zip APPLICATIONS DE SUIVI DE LA GLYCÉMIE POUR LES DIABÉTIQUES par jacques-antoine
Source avec Zip GESTION ECOLAGE par lerave
Source avec Zip UN RÉPERTOIRE TÉLÉPHONIQUE PERSONNEL, PUISSANT ET INTUITIF par jacques-antoine
Source avec Zip [VBA] OBTENIR L'HANDLE DE LA LISTE DÉROULANTE D'UN COMBOBOX ... par Philippe734

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) DESSINER UNE FORME SUR UNE IMAGE par Le Pivert
Source avec Zip Source avec une capture Source .NET (Dotnet) TEXTURE D'IMAGE SUR UNE IMAGE par Le Pivert
Source avec Zip Source avec une capture Source .NET (Dotnet) TEXTURE DE DÉGRADÉ SUR UNE IMAGE par Le Pivert
Source avec Zip Source .NET (Dotnet) ZOOM SUR UNE IMAGE par Guillamue06
Source avec Zip Source avec une capture Source .NET (Dotnet) TEXTE CIRCULAIRE SUR UNE IMAGE par Le Pivert

Commentaires et avis

Commentaire de oulipan le 23/07/2012 00:15:14

Dans le même ordre d'idée, voilà ce que j'utilise pour réduire mes images au format désiré:
'1 contrôle image (imagevar) avec coordonnées hors écran (avec stretch=true)  et un contrôle picture avec la méthode paintpicture
'coimg=mesure du côté désiré(si je veux une image carrée)
exemple:
Private Sub mille(Index)
     coimg = 570: Imagvar.Height = coimg: Imagvar.Width = coimg: Imagvar.Picture = LoadPicture(CurDir & "\t1000.jpg")
    For xx = 1 To Index: Picture1.PaintPicture Imagvar.Picture, xl7, yl7, coimg, coimg: yl7 = yl7 + 700: Next xx '(je répète l'image pour mes besoins)
End Sub

Commentaire de jacques-antoine le 23/07/2012 18:30:45

oui, mais on pourrait encore simplifier en utilisant un tableau de pictures (Index = 0 à nb_pictures - 1), ce qui donnerait :

for xx = 0 to nb_pictures - 1
   picture(xx).PaintPicture = Imagvar.Picture
next

En changeant la taille des pictures, on s'affranchit de l'obligation de gérer les déplacements dans la picture cible. De plus, cette manière de procéder permet de gérer un tableau de pictures à deux dimensions...

Commentaire de oulipan le 24/07/2012 12:39:55

Bonjour, Jacques-Antoine,
Je vous remercie de me lire, mais j'ai dû délaisser - en cas de trop grand nombre:-  "picture(index).picture" en fait " [Picture1(xx * (ymax + 1) + yy).PaintPicture Imagvar.Picture, 0, 0]" , car je n'arrive pas à faire fonctionner  sur mon XP le code "picture(xx).PaintPicture = Imagvar.Picture" que vous me donnez  .
L'affichage de "picture(index).picture" serait intéressant, d'autant plus que l'effacement est facile, alors qu'avec la méthode paintpicture sur une seule picture ou form -pour effacer- m'oblige à refaire un affichage d'autant de segments de fond de la picture ou de la form  qu'il y a d'images à effacer.
En effet, l'affichage de pictures multiples est beaucoup trop long sur le mien (ex:40x20=800 pictures en 16 secondes, sans compter la durée d'effacement...), alors que la méthode paintpicture sur une seule form ou une seule picture est quasi immédiat (testé pour 400x90=36000 images) -et impossible avec picture(36000):ça bloque dès 40x40!
(J'ai utilisé ça pour visualiser les groupements ou distributions sur mes petits programmes concernant les opérations:
http://www.vbfrance.com/codes/EXERCICES-PREPARATOIRES-DIVISION_54351.aspx
http://www.vbfrance.com/codes/TECHNIQUE-TRADITIONNELLE-DIVISION_54279.aspx
http://www.vbfrance.com/codes/ENTRAINEMENT-EFFECTUER-MULTIPLICATIONS-COLONNES-TECHN-TRAD_54186.aspx
et tables, additions, soustractions)

Si vous connaissez des astuces qui me permettent de faire autrement, je suis preneur, car  je ne suis qu'un bricoleur.
En vous remerciant de m'avoir lu.

Commentaire de jacques-antoine le 25/07/2012 09:21:49

Bonjour Oulipan

Je suis allé voir les sources indiquées et j'en ai même chargé une (la première) pour essayer de comprendre de quoi on parle. Résultat : plantages en série dus à une fonction (Time) que VB ne connaît pas chez moi... Donc, je n'ai rien vu et si j'ai un conseil à donner, c'est de bannir absolument les instructions multiples qui rendent la source quasiment illisible à celui qui fourre son nez dedans, sauf à commencer par mettre de l'ordre. Aérez tout ce que vous pouvez et surtout in-den-tez : vous y gagnerez en facilité de mise au point et ceux qui vous aident gagneront du temps.

Pour ce qui est du blocage, il faut faire attention à ce que le nombre d'itérations ne dépasse pas la capacité de la variable utilisée (32767 - 1 pour un entier). Je ne suis pas certain que VB permette un tel nombre d'éléments.... Je ne vois pas non plus quel type d'application en demanderait autant. Il y a là un problème de raisonnement, à mon avis. À moins qu'il ne s'agisse pas d'éléments mais simplement d'itérations sur un même élément? Auquel cas on revient à ce que j'ai dit sur la limitation des valeurs pour une variable.

Bon, j'ai cru comprendre un certain nombre de choses et j'ai pondu une petite source qui montre comment gérer un tableau de PictureBox. Comme je ne sais pas comment adjoindre la Form, voici ce que j'ai fait :
Dans une Form principale (ici Essais) j'ai inséré un PictureBox dont le nom est Picture_table et je l'ai copié 16 fois en créant un groupe de contrôles, ce qui initialise le paramètre Index de 0 à 16 et autorise l'indexation. Les PictureBox sont répartis autour de la fenêtre et le dernier au centre. Il y a en outre 4 boutons :
Charger (Pb_charger), qui initialise toutes les images,
Charger à demi (Pb_charger_demi) qui n'en charge que la première moitié,
Effacer (Pb_effacer), qui efface tout,
Quitter (Pb_quitter) pour dégager.

il faut juste trouver deux images de 82 x 48 pixels, ou en créer deux. Le code est le suivant :

Dim nb_images As Integer ' déclaration valable pour la Form

Private Sub Form_Load()
'**************************************************
'* Fonction : initialisation                      *
'**************************************************

nb_images = 17

End Sub

Private Sub Pb_charger_Click()
'**************************************************
'* Fonction : chargement des images               *
'**************************************************

Dim i As Integer

' le paramètre PaintPicture sert à copier un bout d'image dans
' une autre : ici, j'ai utilisé un LoadPicture pour faire plus
' simple. À priori, PaintPicture devrait pouvoir être utilisé,
' sinon, il suffit de passer par une picture intermédiaire dans
' laquelle on effecture le PaintPicture avant de la copier dans
' le tableau de destination, ce qui se fait avec l'instruction
' Picture_table(i).Picture = Picture_intermediaire.Picture
For i = 0 To nb_images - 1
    Picture_table(i).Picture = LoadPicture("Suivante.jpg")
Next

End Sub

Private Sub Pb_charger_demi_Click()
'**************************************************
'* Fonction : chargement de cla moitié des images *
'**************************************************

Dim i As Integer

For i = 0 To nb_images - 1
    Picture_table(i).Picture = LoadPicture("") ' effacement général
Next

For i = 0 To (nb_images / 2) - 1
    Picture_table(i).Picture = LoadPicture("Precedente.jpg")
Next

End Sub

Private Sub Pb_effacer_Click()
'**************************************************
'* Fonction : effacement des images               *
'**************************************************

Dim i As Integer

For i = 0 To nb_images - 1
    Picture_table(i).Picture = LoadPicture("")
Next

End Sub

Private Sub Pb_quitter_Click()
'**************************************************
'* Fonction : on s'en va                          *
'**************************************************

End

End Sub


Commentaire de oulipan le 25/07/2012 19:29:10

Bonsoir,Jacques-Antoine
Merci pour tout le mal que vous vous donnez.
J'ai essayé votre proposition en l'adaptant à ma sauce, (comme j'ai la flegme de copier plusieurs cmd ou pictures: for i=1 to 15:load ... +calcul des coordonnées),
mais j'en reviens toujours au paintpicture qui me permet de faire rentrer une image de n'importe quelle taille:
(en créant d'abord une image"imagvar" avec la propriété stretch=true)
(et Picture_table(0).autoredraw à true pour éviter l'effacement)
(xwx=Picture_table(0).width et yhy=Picture_table(i).height)


Imagvar.Picture = LoadPicture("add2.jpg")
For i = 0 To nb_images - 1
    'Picture_table(i).Picture = LoadPicture("add2.jpg")
        Picture_table(i).PaintPicture Imagvar.Picture, 0, 0, xwx, yhy

Next

(Pour plus de simplicité, je vous ai transmis un message privé)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Question simple sur Access ! [ par minipod ] J'ai une table, un formulaire. J'ai mis les boutons suivant, précédent etc. dans mon formulaire, ainsi que des champs texte correspondant à la table. Recherche de format d'image le plus simple [ par ymerej ] Bonjour,je souhaite connaitre quel est le format d'image le plus simple a lire car en fait je veu récupérer une image en noir et blanc de 128 x 64 et Réduction Image [ par Cyclone ] Salut à tous;Voilà, pour une fois changer, j'ai encore un petit problème :Je dois faire un petit programme qui reprend une image, et qu c'est tres simple mais j'arrive pas [ par ultra_3m ] Salut a tout les programmeurs c'est tres simple dans la propriete picture d'une form j'ai selectionner une image et maintenent je veux annul Centrage d'une image simple [ par Disicom ] Salut,QUi a une ptit formule simple pour centrer une image à l'endroit exacte dans la partie form_resize je redéfini à chaque fois le centrage d'une i comment faire pour ouvrire une image en fonction d'un bouton [ par a077288 ] Bonjour et merci d'avancece que je veut faire c'est ourir une image qui explique mieux le bouton par exemple j'ai 2 bouton forme simple et forme compl Réduction d'une image importée d'un fichier BMP [ par jytest ] Je suis néophyte en VBJ'utilise les instructions suivantes :Dim posX as double, posY as DoublePrinter.PaintPicture _     Piti problème tout simple [ par veler ] Bonjours à tous,Me voila fasse à un problème tout simple:J'ai un PictureBox dont l'image est chargé depuis un fichier (bmp, png...etc)...Il faut à un Réduction d'image [ par Sinsitrus ] Salut ! J'ai créer un bidule qui affiche dans un composant Image l'image du lien sélectionné. Il affiche en même temps a partir d'un autre composant retouche image simple [ par multimania ] Bonjour Je cherche à l'aide de vba access d'ouvrir une image .jpg de la visualiser dans un formulaire (jusque là pas de soucis) et ensuite depuis le


Nos sponsors


Sondage...

CalendriCode

Mai 2013
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,045 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales