|
Russ,
Can you give us a little more info...
What type of image is it your putting on the clipboard.. is it a bitmap, jpg.. ect. It makes a difference, you can not convert it from one format to another by just putting it on the clipboard. (most digital cameras are jpeg's) so if it is, you'll need to make sure its also taken off the clipboard as jpeg in your code first, then you can convert it to a bmp.
progload
|
|
|
|
|
Here is my module for capturing the image, I believe it is capturing it in bitmap.
Module modCam
Const WM_CAP As Short = &H400S
Const WM_CAP_DRIVER_CONNECT As Integer = WM_CAP + 10
Const WM_CAP_DRIVER_DISCONNECT As Integer = WM_CAP + 11
Const WM_CAP_EDIT_COPY As Integer = WM_CAP + 30
Const WM_CAP_SET_PREVIEW As Integer = WM_CAP + 50
Const WM_CAP_SET_PREVIEWRATE As Integer = WM_CAP + 52
Const WM_CAP_SET_SCALE As Integer = WM_CAP + 53
Const WS_CHILD As Integer = &H40000000
Const WS_VISIBLE As Integer = &H10000000
Const SWP_NOMOVE As Short = &H2S
Const SWP_NOSIZE As Short = 1
Const SWP_NOZORDER As Short = &H4S
Const HWND_BOTTOM As Short = 1
Dim hHwnd As Integer ' Handle to preview window
Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, _
<MarshalAs(UnmanagedType.AsAny)> ByVal lParam As Object) As Integer
Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (ByVal hwnd As Integer, _
ByVal hWndInsertAfter As Integer, ByVal x As Integer, ByVal y As Integer, _
ByVal cx As Integer, ByVal cy As Integer, ByVal wFlags As Integer) As Integer
Declare Function DestroyWindow Lib "user32" (ByVal hndw As Integer) As Boolean
Declare Function capCreateCaptureWindowA Lib "avicap32.dll" _
(ByVal lpszWindowName As String, ByVal dwStyle As Integer, _
ByVal x As Integer, ByVal y As Integer, ByVal nWidth As Integer, _
ByVal nHeight As Short, ByVal hWndParent As Integer, _
ByVal nID As Integer) As Integer
Declare Function capGetDriverDescriptionA Lib "avicap32.dll" (ByVal wDriver As Short, _
ByVal lpszName As String, ByVal cbName As Integer, ByVal lpszVer As String, _
ByVal cbVer As Integer) As Boolean
Public Sub SaveImage()
Dim data As IDataObject
Dim bmap As Image
data = Clipboard.GetDataObject()
If data.GetDataPresent(GetType(System.Drawing.Bitmap)) Then
bmap = CType(data.GetData(GetType(System.Drawing.Bitmap)), Image)
frmMain.imgCapture.Image = bmap
bmap.Save("target.bmp", Imaging.ImageFormat.Bmp)
End If
End Sub
Public Sub ToClipBoard()
SendMessage(hHwnd, WM_CAP_EDIT_COPY, 0, 0)
End Sub
Public Sub LoadDeviceList()
Dim strName As String = Space(100)
Dim strVer As String = Space(100)
Dim bReturn As Boolean
Dim x As Integer = 0
Do
bReturn = capGetDriverDescriptionA(x, strName, 100, strVer, 100)
If bReturn Then frmMain.lstDevices.Items.Add(strName.Trim)
x += 1
Loop Until bReturn = False
End Sub
Public Sub OpenPreviewWindow(ByVal iDevice As Integer)
Dim iHeight As Integer = frmMain.imgCapture.Height
Dim iWidth As Integer = frmMain.imgCapture.Width
hHwnd = capCreateCaptureWindowA(iDevice, WS_VISIBLE Or WS_CHILD, 0, 0, 640, _
480, frmMain.imgCapture.Handle.ToInt32, 0)
If SendMessage(hHwnd, WM_CAP_DRIVER_CONNECT, iDevice, 0) Then ' Connect to device
SendMessage(hHwnd, WM_CAP_SET_SCALE, True, 0) 'Set the preview scale
SendMessage(hHwnd, WM_CAP_SET_PREVIEWRATE, 1, 0) 'Set the preview rate in milliseconds
SendMessage(hHwnd, WM_CAP_SET_PREVIEW, True, 0) 'Start previewing the image from the camera
SetWindowPos(hHwnd, HWND_BOTTOM, 0, 0, frmMain.imgCapture.Width, frmMain.imgCapture.Height, _
SWP_NOMOVE Or SWP_NOZORDER) 'Resize window to fit in picturebox
Else
DestroyWindow(hHwnd)
End If
End Sub
Public Sub ClosePreviewWindow(ByVal iDevice As Integer)
SendMessage(hHwnd, WM_CAP_DRIVER_DISCONNECT, iDevice, 0)
DestroyWindow(hHwnd)
End Sub
End Module
|
|
|
|
|
Russ,
Yes, looks like a bitmap, thanks for letting me see the code...
Ok, you can change your code to this, to get it grayscale...
data = Clipboard.GetDataObject()
If data.GetDataPresent(GetType(System.Drawing.Bitmap)) Then
bmap = CType(data.GetData(GetType(System.Drawing.Bitmap)), Image)
imgCapture.Image = bmap
Dim bm As New Bitmap(bmap)
Dim X As Integer
Dim Y As Integer
Dim clr As Integer
'
'Adjust your grayscale here:
'
For X = 0 To bm.Width - 1
For Y = 0 To bmap.Height - 1
clr = (CInt(bm.GetPixel(X, Y).R) + _
bm.GetPixel(X, Y).G + _
bm.GetPixel(X, Y).B) \ 3
bm.SetPixel(X, Y, Color.FromArgb(clr, clr, clr))
Next Y
Next X
imgCapture.Image = bm
End If
Hope that helps..
progload
|
|
|
|
|
Oh, the image is already captured as grayscale by a setting in my camera. I would like to find the bright spots of the image and locate the x-y coordinates of them and then put a red dot on top of those coordinates. Thanks.
-Russ
|
|
|
|
|
Hello,
I am working on a function that displays the differences in two files. However, this can take minutes when the files are 1 MB or greater. is there a quick way to compare two files on a byte to byte basis and return the offset of the differing bytes and the bytes located there?
Thanks.
|
|
|
|
|
There's nothing that will do it for you, if that's what you're asking. I'd probably start by reading a good size block of each file into its own buffer, then compare what's in the buffers. Reading one byte at a time from each file and comparing will probably be the slowest way you can do it.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I was afraid to hear that. Sadly, that is how I am currently doing it. Thanks for the reply.
|
|
|
|
|
In mp3 files there are tags/properties of Artist Name, Song Name, Album Name. Is there any way through which i can fetch these values (provided i have a list of mp3 files) into variables.
Pls help
Thanks
|
|
|
|
|
|
Thanks
|
|
|
|
|
Hi,
I am facing a strange problem in this. When i try to trap the value of artist and title as:
dim artist as string
artist = objMP3V1.Frame(MP3ID3v1.FrameTypes.Artist)
dim title as string
title = objMP3V1.Frame(MP3ID3v1.FrameTypes.title)
dim new Name as string
newName = artist + title
The variable 'newName' does not contain the values of both title and artist. It only contains of artist whereas individually i am able to see the values of artist (msgbox(artist)) and title (msgbox(title)).
Pls reply within half hour.......
|
|
|
|
|
Ok, first, make sure you have imported the right file into your project. Go to the link I refrenced in my post, and download the source code. Then, import MP3Info.vb from the zip file. Then, use this in your source code:
Dim mp3reader As New Monotic.Multimedia.MP3.MP3Info<br />
Dim artist As String<br />
Dim newname As String<br />
mp3reader.Filename = FileName<br />
artist = mp3reader.ID3v1Tag.Artist<br />
title = mp3reader.ID3v1Tag.Title<br />
newname = artist + title
Where FileName is the filename of your MP3. That should work, I tested it.
|
|
|
|
|
thanks a lot.
my application is now complete.
I will post the application as soon as i design it fully and deploy it.
strings were not concatenating so i created labels and then concatenated them.
|
|
|
|
|
Hello Guys,
Does anybody know to to make changes to datagrid after calling DataBind()? I'm trying to add new columns to my datagrid after binding it. I'll appreciate any help.
Thanks
|
|
|
|
|
You might want to ask this in the ASP.NET forum. I'd say yes you can in a Windows Forms app, because all you do is set the DataSource, but I don't know if it would work in ASP.NET.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I have create a directory by
system.io.directory.createDirectory("C:\temp\")
How can I set it as hidden?
Thank you
|
|
|
|
|
Microsoft.VisualBasic.SetAttr(FilePath, FileAttribute.Directory + FileAttribute.Hidden)
Where FilePath is the directory you want to set. There are a few more constants, and you can play around with them to get different results.
|
|
|
|
|
Thank you first, but it seems doesn't work ...
I added
Microsoft.VisualBasic.SetAttr("C:\temp\", FileAttribute.Directory + FileAttribute.Hidden)
No error, but the directort still in normal, not hidden.
|
|
|
|
|
simply:
FileSystem.SetAttr("D:\aaa", FileAttribute.Hidden)
note that there is no \ at the end of a path
it should work
OmarMallat
|
|
|
|
|
I been trying to migrate a client-server system where the client app (many instances out in the field now) is written in VB6 and uses Winsock controls to communicate with a server app over TCP/IP connections. The old server app written in VB6 also using Winsock controls works fine, but as I migrate the server app to VB.NET and use .NET socket objects, the system intermittantly hangs. The server .NET app receives the data from the VB6 clients just fine, but when it sends back the responses (especially if it is a large, multi-packet response) it hangs -- as if the last packet never arrived, and the .NET socket closed before the receiving Winsock control had a chance to finish collecting data (through iterative DataArrived event handler calls). Anyone have any ideas on how to overcome this? (yes, eventually the client apps need migration to .NET also, but for now they remain in VB6)
|
|
|
|
|
Does anyone know how to make a textbox/richtextbox backcolor transparent? VB Code/demo would be appreciated.
thanks
amy
|
|
|
|
|
As far as I know, it is not possible. Here is an example of code you could use:
RichTextBox1.BackColor = Color.FromArgb(Convert.ToInt32("80FFFFFF", 16))
Where "80FFFFFF" is the color, in ARGB form, and A is the alpha component, meaning opacity. At runtime, the exception is thrown that RichTextBoxes do not support transparent backgrounds. Forms have an opacity option, which means that transparency is just not supported by these controls. Specially made controls that do support opacity may be the best option, such as this: Alpha Blend Text Box by Bob Bradley[^]
|
|
|
|
|
Hello Everyone:
I want to make a program that incorporates an explorer style user interface. The left hand side shows a tree structure of drives and folders. While the right hand side shows a list of the files inside a selected folder.
Inside VB 6 there is a simple routine called ShowFolderList. I have modified it a bit to show the attribute number for each folder the routine returns.
Here is the modified routine:
Sub ShowFolderList(strPath As String)
Dim fs, f, f1, fc, s
Dim Attr As Integer
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(strPath)
Set fc = f.SubFolders
For Each f1 In fc
Attr = GetAttr(strPath & f1.Name)
Debug.Print f1.Name & " Attr: " & CStr(Attr)
Next
End Sub
I’m sending in “C:\” as the path, because I want a list of all the folders on this hard drive. I’m also listing the Attribute number for each folder. Now here is the noggin scratchier. When I show a list of the folders I returned I see some attribute numbers that are not defined in the attributes constants in VB.
Here is the list I get from my laptop using the above routine:
Adv_Basics Attr: 16
Adv_Doc_Production Attr: 16
Backup_Exp Attr: 16
Config.Msi Attr: 22
Cosmetology Attr: 16
Documents and Settings Attr: 16
Program Files Attr: 17
RECYCLER Attr: 22
SHFileOperation Attr: 16
swsetup Attr: 16
System Volume Information Attr: 22
SYSTEM.SAV Attr: 16
TreeView_Test Attr: 16
WINDOWS Attr: 16
I’m interested in only the folders on the hard drive. So the folders with a 22 attribute need not be shown. But the Programs Files folder has an attribute number of 17, and 17 is not defined as a directory. A directory or folder attribute number is 16.
So my first question is: Why is the Program Files folder attribute a 17? And the second one is: How can I modify the routine to return only unhidden folders and non-system folders?
Thank you
Quecumber256
|
|
|
|
|
This is the combination of 2 or more attributes.
In your case, 17 is a combination of ReadOnly (1) and Directory (16). 22 is a combination of Directory (16), System (4), and Hidden (2). 16+4+2 = 22.
If you wanted to check for these attributes being turned set, all you have to do is a little binary math:
If ((attribValue & 4) > 0) Or ((attribValue & 2) > 0) Then
' At least one of the System (4) or Hidden (2) attributes are set
Else
...
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
-- modified at 15:00 Wednesday 1st March, 2006
|
|
|
|
|
Dave,
Bare with me on this. I looked at the properties on the other folders, they are set to read-only, but their attribute numbers are 16. Why don't they show a 17 like the Program Files folder?
Your IF Statement will help when I list out the folder names.
Thank you,
Quecumber256
|
|
|
|
|