By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,145 Members | 1,560 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,145 IT Pros & Developers. It's quick & easy.

Gat an image from Clipboard and Save it in tif format

PEB
Expert 100+
P: 1,418
Hi,

I've managed to copy an image to the clipboard from other application different from Access, but i want to get the image in the clipboard and save it in tif format using Access...

Somewhere i've found a function that loads the image in an Ole field. Is it necessary to do this before saving the image in tif?

Thanks

Vlady
Nov 25 '06 #1
Share this Question
Share on Google+
7 Replies


NeoPa
Expert Mod 15k+
P: 31,660
Sorry Vlad - I'd help if I knew :(
Nov 26 '06 #2

PEB
Expert 100+
P: 1,418
PEB
Hey Ade,

I've turned the things....

In fact Corel will do the tiff image... I've seen some Macros for it... and the rest is to test them...

I don't want to use them from Access coz i should register new references to libraries... And do my installation more heavy. But i'll run this macros from opened Corel by Access

In plus from Access I have to register more than one reference coz not all types are in one reference

My previous idea was to open the respective Corel Copy it to clipboard and Paste it in ole in Access than transform this Ole to tiff and send the tiff via mail..

But the procedure with pasting in OLE in Access seems a bit long... But using the Corel Macros from Access didn't give me satisfaction!

So the macros should be in Corel and i'll activate them from Access without doing the long procedure of Copy and Paste!

Thanks man! :)
Nov 26 '06 #3

PEB
Expert 100+
P: 1,418
PEB
About pasting an image from clipboard...

it is like:

Expand|Select|Wrap|Line Numbers
  1.         Forms!Link_OLE!OLE1.Action = acOLEPaste
  2.  
Nov 26 '06 #4

PEB
Expert 100+
P: 1,418
PEB
But no function to Save in tif!

I'll search and if i find i'll note here!
Nov 26 '06 #5

PEB
Expert 100+
P: 1,418
PEB
This action needs 4 seconds to be performed...

About pasting an image from clipboard...

it is like:

Expand|Select|Wrap|Line Numbers
  1.         Forms!Link_OLE!OLE1.Action = acOLEPaste
  2.  
Nov 26 '06 #6

PEB
Expert 100+
P: 1,418
PEB
I've found a code to do the conversion.

It's french and i should test it...

http://www.vbfrance.com/code.aspx?ID=5458

Public Class frmConvertionImage
Inherits System.Windows.Forms.Form

Const EOF As Integer = -1

Dim TYPES_IMAGES As String() = {".bmp", ".gif", ".emf", ".jpg", ".png", ".tiff", ".wmf"}
Dim NomFormat As String() = {"Bitmap (BMP)", "Join Phjoto Expert Group (JPG)", "Portable Network Graphic (PNG)", "Tag Image File Format (TIFF)", "Windows Meta File (WMF)", "CompuServ Image (GIF)", "Enhanced Windows (EMF)"}
Dim Compression As String() = {"Aucune", "Très Bonne", "Bonne", "Moyenne", "Faible", "Excellente", "Moyenne"}

Dim strNomFichier As String
Dim strFichierFullPath As String
Dim Extension As String
Dim ConfigFile As String


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim FileInfo As New IO.FileInfo(Application.ExecutablePath)

'Path du fichier de configuration qui contient le dernier type d'image choisi
'ainsi que le dernier choix garder ou pas l'image originale.
ConfigFile = String.Concat(FileInfo.DirectoryName, "\", "Convert.cfg")

'Lecture des arguments, ex: Convert.exe c:\bmp\image.bmp
Dim Command As String() = Environment.GetCommandLineArgs

Dim ioLecture As IO.StreamReader = IO.File.OpenText(ConfigFile)
Dim Choix As Boolean
Dim intSelection As Integer
Dim I As Integer

'Transforme le curseur en petit sablier
Me.Cursor = System.Windows.Forms.Cursors.WaitCursor

'Ajoute tous les noms de format dans la listview
For I = 0 To NomFormat.Length - 1 Step 1
lsvTypesImage.Items.Add(NomFormat(I))
lsvTypesImage.Items(I).SubItems.Add(Compression(I) )
lsvTypesImage.Items(I).ImageIndex = 0
Next I

'Établi l'ordre alphabétique
lsvTypesImage.Sorting = SortOrder.Ascending

'Lit les lignes si la lecture n'est pas rendue a la fin de fichier (EOF)
'Choix Garder/Supprimer
If ioLecture.Peek <> EOF Then
Choix = ioLecture.ReadLine()
Else
Choix = False
End If

'Choix du format précédant
If ioLecture.Peek <> EOF Then
intSelection = CInt(ioLecture.ReadLine())
Else
intSelection = 0
End If

'Fermeture du fichier en lecture
ioLecture.Close()

'Sélectionne la ligne correspondant au format choisi la derniere fois
lsvTypesImage.Items(intSelection).Selected = True

'Coche l'option garder/supprimer choisie la derniere fois
radSupprimer.Checked = Choix
radGarder.Checked = Not Choix

'Si un argument n'a pas été donné lors de l'appel du .exe
If Command.Length = 1 Then

'Restreint l'utilisateur a choisir que ces types de fichiers comme
'fichier a convertir
OpenFileDialog1.Filter = "Tous les types d'images suppotés|*.bmp;*.gif;*.emf;*.jpg;*.jpeg;*.png;*.ti ff;*.wmf|Bitmap (BMP)|*.bmp|CompuServ Image (GIF)|*.gif|Enhanced Windows (EMF)|*.emf|Join Phjoto Expert Group (JPG)|*.jpg;*.jpeg|Portable Network Graphic (PNG)|*.png|Tag Image File Format (TIFF)|*.tiff|Windows Meta File (WMF)|*.wmf"

'Ouvre la fenetre d'ouverture de fichier
OpenFileDialog1.ShowDialog()

'Saisie du nom de fichier
strFichierFullPath = OpenFileDialog1.FileName()

'Si aucun fichier n'a été sélectionnée, Fin du programme
If strFichierFullPath = String.Empty Then
Me.Close()
Exit Sub
End If

Else

'Si un argument a été donnée, cet argument est le fichier a convertir
strFichierFullPath = Command(1)

End If

'Sert a obtenir des information sur le fichier
Dim FileInfo2 As New IO.FileInfo(strFichierFullPath)

Extension = FileInfo2.Extension
strNomFichier = FileInfo2.Name

lblNom.Text = String.Concat("Nom de l'image à convertir : ", strNomFichier)

'Rétabli le curseur de Windows par défault
Me.Cursor = System.Windows.Forms.Cursors.Default

End Sub


Private Sub btnAnnuler_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAnnuler.Click
'Fermeture du programme
Me.Close()
End Sub


Private Sub Convertir()

'Si un item a été sélectionné
If lsvTypesImage.SelectedIndices.Count > 0 Then

'Curseur Sablier
Me.Cursor = System.Windows.Forms.Cursors.WaitCursor

'Sauvegarde des options (Types de fichier et Garder/Supprimer)
Dim ioEcriture As IO.StreamWriter = IO.File.CreateText(ConfigFile)
ioEcriture.WriteLine(radSupprimer.Checked)
ioEcriture.WriteLine(lsvTypesImage.SelectedIndices (0))
ioEcriture.WriteLine("caca")
ioEcriture.Close()


Dim Convertisseur As New System.Drawing.Bitmap(strFichierFullPath)
Dim NouvelleExtension As String = TYPES_IMAGES(lsvTypesImage.SelectedIndices(0))
Dim strNouveauFichier As String = String.Concat(strNomFichier.Substring(0, strNomFichier.LastIndexOf(".")), NouvelleExtension)

'Vérification si le ficheir existe déja
If NouvelleExtension = Extension Or IO.File.Exists(strNouveauFichier) Then
MsgBox("Le fichier existe déjà. Choissisez un autre format d'image.", MsgBoxStyle.Critical, "Erreure lors de la création du fichier.")
Me.Cursor = System.Windows.Forms.Cursors.Default

'Si le fichier existe déja, la procédure ne se poursuit pas
Exit Sub
End If

'Converti le fichier en un autre format selon l'extension cible
Select Case NouvelleExtension
Case ".jpg"
Convertisseur.Save(strNouveauFichier, System.Drawing.Imaging.ImageFormat.Jpeg)
Case ".tiff"
Convertisseur.Save(strNouveauFichier, System.Drawing.Imaging.ImageFormat.Tiff)
Case ".wmf"
Convertisseur.Save(strNouveauFichier, System.Drawing.Imaging.ImageFormat.Wmf)
Case ".gif"
Convertisseur.Save(strNouveauFichier, System.Drawing.Imaging.ImageFormat.Gif)
Case ".png"
Convertisseur.Save(strNouveauFichier, System.Drawing.Imaging.ImageFormat.Png)
Case ".bmp"
Convertisseur.Save(strNouveauFichier, System.Drawing.Imaging.ImageFormat.Bmp)
Case ".emf"
Convertisseur.Save(strNouveauFichier, System.Drawing.Imaging.ImageFormat.Emf)
End Select

'Libère les ressources utilisées par Convertisseur
Convertisseur.Dispose()

'Supprime l'image originale si l'option de la supprimer est activée
If radSupprimer.Checked Then
Kill(strFichierFullPath)
End If


End If
btnAppliquer.Enabled = False
'Rétabli le curseur
Me.Cursor = System.Windows.Forms.Cursors.Default

End Sub

Private Sub lsvTypesImage_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles lsvTypesImage.DoubleClick
Convertir()
End Sub

Private Sub btnOk_CLick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
Convertir()
Me.Close()
End Sub

Private Sub lsvTypesImage_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lsvTypesImage.SelectedIndexChanged
btnAppliquer.Enabled = True
End Sub

Private Sub btnAppliquer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAppliquer.Click
Convertir()
End Sub
End Class



Explication finaleSi vous voulez, vous pouvez compiler le setup qui vient avec le projet et si vous l'installez, vous aurez un item ajouté au menu contextuel qui s'affiche lorsque vous cliquez sur le bouton de droit sur une image. Vous pourrez alors
convertir vos images comme si cette fonction serait intégrée dans Windows.

Note : Convert.cfg doit etre dans le répertoire de l'éxécutable (J'aurais pu arranger ca...)

C'est mon premier projet VB.NET qui sert a quelque chose, alors soyez un peu indulgents.

Nov 26 '06 #7

PEB
Expert 100+
P: 1,418
PEB
In fact i've not managed to start the sub convertisseur work properly...

I've tried with Createobject("Imaging.Application")
With GetObject(FileName)

But not of them produced the wanted result of convertion!


If someone knows about the object class of pbrush or paint...
Nov 26 '06 #8

Post your reply

Sign in to post your reply or Sign up for a free account.