re Bonjour
PUIS JE ABUSER DE VOTRE GENTILLESSE ,

Maintenant que mon probleme de selection de zone image dans un userforme est reglé (gros merci a Tête de Chat ), je n'arrive pas a la sauvegarder en jpg
Je me heute a des methodes non gérer, incompatibilité de type etc ..... j'ai fait plusieurs essais pour revenir a ma solution initiale dans le code ci-dessous

Update : qui en fait etait une erreur colossale puisque je n ai plus gdpicture


donc si vous avez des solutions a me suggerer ...... je suis preneur

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
 
Public Sub PageFreqimg_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    ' Lorsque l'utilisateur relâche le clic, enregistrez les coordonnées de fin
    If SelectionEnCours = 2 _
        Then
            SelectionEnCours = 0
        X2 = X
        Y2 = Y
    End If
         ' Copie et sauvegarde de la zone sélectionnée en tant qu'image JPEG
    Dim FicCible As String
    FicCible = RepExport & "\" & ActionOCR & ".jpg"
    CopierEtSauvegarderSelection FicCible    '<w=================== appel 
    '............................................  reste du code
 
Public Sub CopierEtSauvegarderSelection(FicCible As String)
    ' Vérifiez si les coordonnées de début et de fin de la sélection sont valides
    If X1 = 0 Or Y1 = 0 Or X2 = 0 Or Y2 = 0 Then
        MsgBox "Please select an area to copy first.", vbExclamation
        Exit Sub
    End If
 
    ' Créez un objet GdPicture
    Dim gdPicture As Object
    Set gdPicture = CreateObject("GdPicture.GdPicture.10") '<============== le probleme est là, j ai meme essayé de passer par un userformtemporaire  :arf::arf:
 
    ' Chargez l'image source
    Dim imagePath As String
    imagePath = PageFreqimg.Picture
    If gdPicture.LoadFromFile(imagePath) = 0 Then
        MsgBox "Unable to load the image.", vbExclamation
        Exit Sub
    End If
 
    ' Calculez les coordonnées de la zone sélectionnée
    Dim width As Long
    Dim height As Long
    width = X2 - X1
    height = Y2 - Y1
 
    ' Copiez la zone sélectionnée
    gdPicture.Crop X1, Y1, width, height
 
    ' Enregistrez la zone sélectionnée en tant qu'image JPEG
    If gdPicture.SaveAsJPEG(FicCible, 75) = 0 Then
        MsgBox "Error while saving the image.", vbExclamation
    Else
        MsgBox "The selection has been copied and saved as a JPEG image.", vbInformation
    End If
 
    ' Libérez les ressources de GdPicture
    gdPicture.CloseImage
    Set gdPicture = Nothing
End Sub
Avez vous une solution pour moi