Bordure blanche

Messages postés
20
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
11 décembre 2002
-
Messages postés
530
Date d'inscription
lundi 3 juin 2002
Statut
Membre
Dernière intervention
13 juin 2004
-
Voila mon pb:

Je souhaiterais supprimer les marge blanche sur les côtés de l'image en automatique.

9 réponses

Messages postés
530
Date d'inscription
lundi 3 juin 2002
Statut
Membre
Dernière intervention
13 juin 2004

De quel image ?

>:) ::Alan USSE:: >:)
Messages postés
20
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
11 décembre 2002

Voila le hic de l'histoire, c'est que justement, ce n'est pas sur une image en particulier,mais sur un fichier image (jpg) choisi par l'utilisateur donc...

Je rêve sans doute eveiller mais bon...
Messages postés
530
Date d'inscription
lundi 3 juin 2002
Statut
Membre
Dernière intervention
13 juin 2004

Tu veux supprimer une eventuelle bande blanche sur une image ?

Faut faire un do loop sur les X et sur les Y pour trouver ou s'arrete la ligne blanche, puis faire un paintpicture ensuite...

C p't être confus ?

>:) ::Alan USSE:: >:)
Messages postés
20
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
11 décembre 2002

Oui ,c'est confu (je n'ais jamais "operé" d'image),mais avant de me lancer dans le trt d'image,j'aimerais savoir deux choses:

-Est ce simple a prog?

-Est ce long a executer?

Merci pour ton aide,

Florian.
Messages postés
530
Date d'inscription
lundi 3 juin 2002
Statut
Membre
Dernière intervention
13 juin 2004

Pour faire simple, ca peut être long (ca t'avance, hein ?)

Voilà une idée de travail (MyPic as PictureBox)

dim X,Y,XD,YD

mypic.scalemode=vbPixel

'Pour le X de départ
do while MyPic.Point(X,1)=rgb(255,255,255)
X=X+1
loop

'Pour le Y de départ
do while MyPic.Point(1,Y)=rgb(255,255,255)
Y=Y+1
loop

'X de fin
XD=mypic.scalewidth
do while MyPic.Point(XD,1)=rgb(255,255,255)
XD=XD-1
loop

'Y de fin
YD=mypic.scalewidth
do while MyPic.Point(YD,1)=rgb(255,255,255)
YD=YD-1
loop

Mypic.paintpicture mypic.picture,X,Y,XD,YD.

C une base de travail, ce code, je le fait en live donc, y a du bug à résoudre.

G spair que çà peut t'aider. En tout cas, revoie un mail si pb.

>:) ::Alan USSE:: >:)
Messages postés
20
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
11 décembre 2002

Merci Alan pour ton bout de prog...mais y'as un truc qui m'echappe , perssonne ne prog de logiciel de trt d'image(je n'ais pas encore vu de telles codes)?
Vois tu j'ais essayer de demare Paint, Microsoft Photo Editor...mais pas moyen ,alors est ce que c'est possible? Ou alors au pire d'enregistrer l'image crée Sous un repertoire qcq

Merci Alan pour tes conseils

Florian
Messages postés
530
Date d'inscription
lundi 3 juin 2002
Statut
Membre
Dernière intervention
13 juin 2004

G fait un logiciel de traitement d'image (pas fini) interne à un autre prg. Il fait pas mal d"effet (g pris le principe d'une source très efficace sur le site et a ajouter ceux créer par black wizzard).

G fini la partie 'effet', g ajouter un effet miroir mais les fonctions de recadrage, tout ca c pas fait.
Avec les cours qui reprennent G plus trop le temps.

Ca doit être possible d'ouvrir Paint ou photoeditor, il faut faire la liste de tous les prg installés avec leurs paths et de trouver paint.

PS : Heureux qu'e ca t'est aider !

>:) ::Alan USSE:: >:)
Messages postés
20
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
11 décembre 2002

Alan , dans mon cas aussi il s'agit d'un bout de bout de logiciel.En ce qui concerne l'ouverture de prog ext, ce n'est plus nécéssaire (j'ais reussi a sauvegarder l'image crée)

En ce qui concerne ta source , je l'ais completement modifier (ca marche , ca cadre bien),sauf que je n'arrive pas a la decouper, tien :

chemtheme = DIR.Path & "" & FILE.List(FILE.ListIndex)
ImageList1.ListImages.Remove ("Theme")
Set Im = ImageList1.ListImages.Add(1, "Theme", LoadPicture(chemtheme))
Set Picture2.Picture = ImageList1.ListImages(1).Picture
X = Picture1.Width
Y = Picture1.Height
delta = Picture2.Width / Picture2.Height

If delta <= 1 Then
Set Picture1.Picture = Nothing
Picture3.Width = delta * Y
Picture3.Height = Y
Picture1.PaintPicture Picture2, (X - delta * Y) / 2, 0, delta * Y, Y
Picture3.PaintPicture Picture2, 0, 0, delta * Y, Y
Else
Set Picture1.Picture = Nothing
Picture3.Width = X
Picture3.Height = X / delta
Picture1.PaintPicture Picture2, 0, (Y - X / delta) / 2, X, X / delta
Picture3.PaintPicture Picture2, 0, 0, X, X / delta

End If

Picture3.ScaleMode = vbPixels
H = Picture3.ScaleHeight
G = Picture3.ScaleWidth
D = Picture3.ScaleWidth
B = Picture3.ScaleHeight
'pt le plus haut
Yh = 1
Xh = 1
Do While Xh < D
pix = Picture3.Point(Xh, Yh)
Do While (pix = 16777215 And Yh < H)
pix = Picture3.Point(Xh, Yh)
Yh = Yh + 1
Loop
H = Yh
Xh = Xh + 1
Yh = 1
Loop
PtHaut = H

'pt le plus bas
Xh = 1
Yh = B - 1
Do While Xh < D
pix = Picture3.Point(Xh, Yh)
Do While (pix = 16777215 And Yh > H)
pix = Picture3.Point(Xh, Yh)
Yh = Yh - 1
Loop
H = Yh
Xh = Xh + 1
Yh = B - 1
Loop
PtBas = H
'Pt le plus a gauche
Xh = 1
Yh = PtHaut
pix = Picture3.Point(Xh, Yh)
Do While Yh < PtBas
pix = Picture3.Point(Xh, Yh)
Do While (pix = 16777215 And Xh < D)
pix = Picture3.Point(Xh, Yh)
Xh = Xh + 1
Loop
D = Xh
Yh = Yh + 1
Xh = 1
Loop
PtGauche = D

'pt le plus a droite
Yh = PtHaut
Xh = G - 1
Do While Yh < PtBas
pix = Picture3.Point(Xh, Yh)
Do While (pix = 16777215 And Xh > D)
pix = Picture3.Point(Xh, Yh)
Xh = Xh - 1
Loop
D = Xh
Yh = Yh + 1
Xh = G - 1
Loop
PtDroit = D
Messages postés
530
Date d'inscription
lundi 3 juin 2002
Statut
Membre
Dernière intervention
13 juin 2004

A ouais, pour sur que tu l'as modifier ma source !
Heureux que sa t'ai aider (je me répete, je sais)

Ca va peut-être m'aider à faire ma fonction de recadrage, merci !

>:) ::Alan USSE:: >:)