BitBlt Copy Bitmap To Screen?
Mar 7, 2012
Edit: Fixed, I created a compatibleDC for the graphics object, and a handle for the bitmap (using b.gethbitmap), then used the SelectObject function inside GDI to select those two, and used the compatibleDC instead of hDc in the BitBlt function I've been trying to draw a bitmap to the screen (device 0), however I have encountered a problem copying the graphics using BitBlt.
Initially, I was drawing directly to the desktop using SetPixel (gdi32), but it was slow, so now I am setting the pixels of a bitmap object and then creating graphics from that object, and copying the hdc of the graphics to the screen.My guess is that I am adding the HDC of the graphics object to an intptr, which essentially gives me the HDC of the container of the graphics object, which is not what I need. However even so, I have not found any information on how I could copy a bitmap to a device other than using BitBlt.
This is my current code (Windows forms app, textbox, button) The textbox is the device to copy to, and the button starts it. For testing purposes, set the textbox text to 0, and press the button. You should see a black box (50x50px) in the top left corner of your screen. The colour should be blue if it is working correctly:
Public Class Form1
Declare Function GetDC Lib "user32.dll" (ByVal hwnd As Int32) As Int32
Declare Function ReleaseDC Lib "user32.dll" (ByVal hwnd As Int32, ByVal hdc As Int32) As Int32
[code]....
The way it works is it calls the function setpx, given a location and color from within a loop iterating through all of the pixels in a box (50x50 in my code). The setpx function will then call the setpixel fuction on a bitmap b. This part is working fine.Next, it will define a graphics object g from the bitmap, and I use BitBlt to copy g's hdc (g.gethdc) to the screen. This is not working correctly?
View 1 Replies
ADVERTISEMENT
Oct 4, 2010
I have a BitBlt wrapper function in my VB project. It works just fine when compiled as Any CPU, but when I aim it at x86 it creates an empty bitmap. I must use x86 as other parts of the app require it. Here is the code:
Imports System.Drawing.Imaging
''' <summary>
''' Provides the static method ControlCapture used to
''' take screenshots of the specified control.
[Code].....
View 1 Replies
Mar 2, 2009
I need to find a bitmap on the screen?
View 1 Replies
Oct 12, 2010
I know how to copy a bitmap to a picturebox.image but how do I copy the bitmap to the form?
Example:
I want to create a form 1600x1200 and put a 1600x1200 image on the form to cover the entire surface.
Then I want to put several pictureboxes 256x40 (Tool Bars) at different locations on the form.
If pictureboxA is at x32, y32 on the form, I want to copy from the form at x32, y32 256x40 to the picturebox.image then draw
the buttons on the pictureboxA.
I know how to load a .jpg or .bmp to the form from a file. This won't work for my purpose.
If there is no fix for this then the only thing I could do would be to create the bitmap then save it to a file, then reload the file to the form. I want to avoid this... It takes up time :(
View 4 Replies
Jan 4, 2011
I am trying to take a png file (around 2000 x 2400) and split it into 8 smaller images of 500 x 1250 each (2 rows of 4), each of which is saved as a png file. I then which to display these smaller png files in a picture box so that they look as if they were one image.
My problem is that when I display the png files in the picture box, lines that look like grid lines show up in the picture box at the points where the png files sit next to each other.
When I view the smaller png files in Paint it appears as if the left column (x=0)and top row (y=0) of each file is set to clear (or transparent). What shows up in the picture box is the background colour of the picture box.
This clear/transparent row and column are not added on to size of the smaller png files. They are still 500 x 1250.Not every file is affected. If the smaller files are created from the original bitmap in the following order[code]...
View 4 Replies
Jan 14, 2010
I created a bitmap, that is supposed to be displayed on the screen, in the middle. It will have to be on top of EVERYTHING!! Even if a full screen application is running, I want it to show. My questions are: Is it possible to even display a CUSTOM MADE bitmap on the screen?
Option Strict Off
Imports System.Drawing.Drawing2D
Imports System.IO[code]....
View 6 Replies
May 20, 2012
I'm looking to make a program that would capture your whole screen, then have the picture display on the screen (simulating a frozen screen) to where the person handling the program could select a partial segment of the screen with their mouse and then save to a folder.
1. I have no idea how to go by doing this
2. My form is constantly minimized, so I have to do it without MouseDown on the form and whatnot.
How would I go by doing this?
View 2 Replies
Dec 13, 2010
I am trying to take a snapshot, or a copy of a control, for a bitmap. I'm wanting to do this to a listbox, but part of the listbox may be hidden.On the mouse_down event I need to get the snapshot of the whole listbox (even though parts may be hidden behind other controls, I need the whole listbox) and draw it to the screen in the same location as the original listbox (but the hidden parts still stay hidden behind the other controls on the bitmap).
On the mouse_move event I need to move the snapshot up/down based on mouse movement. This also moves the listbox up/down and this code is done. I will just move the snapshot of the listbox the same way as the original listbox.On the mouse_up event, I will dispose the bitmap and display the original listbox again.
I am doing this because moving a listbox up/down is really messy. It's a custom drawn listbox and looks horrible moving, so I figured if I could snapshot it, move the bitmap while visible, and listbox behind the scenes, it will flow smoothly and no one would notice I am scrolling a bitmap instead.
Double buffering the form and listbox didn't help . I've done some graphics.drawstring before, but not much on other graphics.
View 11 Replies
Nov 29, 2011
There is Bitmap data on the clipboard from a screen capture. If I paste it into a RichTextBox it works OK. That is, if I remove the first two lines below.
Dim clipboardDataO As DataObject = CType(Clipboard.GetDataObject(), DataObject)
Clipboard.SetDataObject(clipboardDataO)
RichTextBoxTxt.Paste(DataFormats.GetFormat(DataFormats.Bitmap))
However, If I capture the clipboard data and restore it before I paste I no longer get my bitmap displayed in the box. My problem is, in the real situation I need to use the clipboard before I paste which is why I save it and restore it above.
1) Do you know why restoring doesn't appear to work here?
2) I can't paste before the save/restore. Is there something else I can do?
View 1 Replies
Feb 5, 2011
I'm trying to create a DLL with some useful methods and subs for my use. But when I tried declaring an object for Form or using the keyword Screen, Bitmap, etc.. gives an error saying that "The type 'Screen' is not defined" and like that..
View 7 Replies
Oct 4, 2010
Using a blank form I draw simple colored shapes to the form(x800 - y600 @ x0 - y0).
I'm using a picturebox(x800 - y600 @ x0 - y0), how do I copy whats on the form to the picturebox?
I want a mirror image copy.
Also, how do I copy from picturebox to form?
View 3 Replies
Nov 12, 2009
I would like to select and copy in the clipboard a text chat row (the last row), so to save, row after row, the whole chat in a file To select the row is sufficent a single clik into a row, so that my idea was to simulate the mouse clik in the last row and then simulate the Control+C key press
Private Sub Timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer.Tick
mouse_event(MOUSEEVENTF_LEFTDOWN, Pos1, Pos2, 0, 0)where Pos1 e Pos2 are the coordinates of a whatever point the chat row BUT THIS WORK IS NOT GOOD the mouse cursor becomes unusable with the normal work, so that it is needed a different idea, that makes the job INDIPENDENT from any other work made at the PC in the same moment
now the question is: any idea as how to solve the problem?
View 2 Replies
Jun 15, 2010
i am already mad at the fact that control arrays are gone..Is the syntax for BitBlt that same from vb6 and vb.net? Can i still use the vbSrcAnd, vbSrcCopy, and vbSrcPaint?I have seen some things on going around control arrays, but how would i do some control arrays for bitblt? i tried
Dim picPicture(0) as picturebox
Dim i
for i = 0 to 10
redim preserve picPicture(i)
picPicture(i).Image = Application.Startuppath & "img" & i & ".bmp"
next
View 30 Replies
Jul 3, 2011
I'm using Bitmap to show picture box like slideshow using Timer. For each timer interval, I've to go for new instance of Bitmap, there System memory increases to 1MB, How to resolve this, 'BG is picture box
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tic Dim img As Bitmap
img = New Bitmap(System.Drawing.Bitmap.FromFile(FileIO.FileSystem.GetFiles
[CODE]...
View 1 Replies
Dec 21, 2009
I am trying to use Bitblt for drawing one image on another. but when i try to get HDC From first image it gives Negative pointer value, so BitBlt returns 0 value. is it possible to get device context from bitmap directly?
[Code]...
View 6 Replies
May 18, 2010
I was told to use bitblt to crop my image. But i am new to vb and am really confused as to how to do it. I am making a board game. The player chooses its colour of player (a pawn),this image is then placed on the board. I want just the pawn to show and not the box around it.
View 6 Replies
Dec 15, 2010
I'm trying to use a ToolTip directly to a Bitmap Object (System.Drawing.Bitmap), aparently I can't do this because Bitmap isnt a Windows Control.
View 1 Replies
Oct 13, 2009
I use vb.net 2005.I want to take one image and place it on top of another image, I want to blend the images using various techniques such as OR or XOR od AND functions.I understand BitBlt does this.1) Is this the technique i should use in .net? Or is there some complicated parameters burried deep in the graphics.drawimage method?2) How do i declare the BitBlt function and what are the values of the ROP parameters?
View 9 Replies
Feb 24, 2009
It's several years since I last used BitBlt and the like in VB6, and I'm just refreshing my memory with a little sample app before using it on the current project I'm working on in VB2005. I've come up with the following:
[Code]...
View 6 Replies
Oct 16, 2011
I picked vb.net for this question since it's the only prgramming language I am fairly familair with, but if C++ or something else is more suited for this, I am willing to learn something new.What I am trying to do is:Retrieve text from database (this already works in vb.net) and copy it to clipboard Switch primary screen to the external application I want to work with (example: word or open office) Emulate key-press "Enter" Paste text and hit enter again Emulate key-press CTRL and then emulate a click on a pre-defined spot on the screen (like 500pixels from left, 740pixels from top). Save screenshot, using a second value from the database as the filename (the naming part should be easy) Emulate another click on another pre-defined spot Repeat for next text in database.I wouldn't know where to start, though. I guess the most important part of what I'm trying to achieve is; switching focus to an external application and emulate keypresses and mouse clicks on it.
View 1 Replies
Sep 1, 2009
My code is evaluating a table on one sheet and if the record meets the criteria it is copy and pasted into a target worksheet. While it runs the screen is flashing as it updated each line. I thought I saw that you could disable this screen refresh until the program was complete. Can anyone tell me how this would be done? Below is a section fo the code which is performaing this task.
SourceWS = "DASHBOARDSTG" 'Set Source Worksheet Name
[Code]....
View 1 Replies
Sep 17, 2011
how can i create a monochrome bitmap from a semi transparent bitmap in vb.net? the bmp is for a transparency mask image for an icon i'm trying to create with the CreateIconIndirect API function.
i'm using vb2008 .Net3.5, but i would prefer an answer that would also work in vb2005
View 9 Replies
Jul 29, 2010
[URL]
Finally "upgraded" to vbnet and got no idea how to do this! What I'm doing is using bitblt to take a screenshot of the desktop and put it in a picturebox. What I really need is just the raw data from the picture, not the picture showing on a picturebox.
Only problem is that it is not working at all!
Here is the entire sourcecode. How is it not working??
Module1
Module Module1
Public Declare Function GetDesktopWindow Lib "user32" () As Long
Public Declare Function BitBlt Lib "gdi32" (ByVal hDCDest As Long, _
[Code].....
View 15 Replies
Mar 9, 2010
I'm using BitBlt and GetDC to capture windows and save them to a bitmap, but a window that is covered or overlapped by another window appears with that window showing over top of it. Is there a way to stop this from happening? I have the window handle available, the graphics context, and a Process object.
View 5 Replies
May 26, 2011
Here is a short program to demonstrate my question. I just want to extraxct a rectangle bitmap from a big bitmap.Code as follows:
Private
Sub Button3_Click(ByVal sender
As System.Object,[code]....
Execution stops when hitting the Dim cloneBitmap statement, which should have created a bitmap out of the rectangle cut out.The message is:
"MissingMemeberException was unhandled.
No default member was found for type 'bitmap"
I just don't get it. Seems that the method Clone(Rectangle, PixelFormat was not found.
View 8 Replies
Feb 10, 2010
I have a grass image located here in my directory. I want to just create a Bitmap, but I am getting an error. (Parameter is not valid.) Immediate Window: A first chance exception of type 'System.ArgumentException' occurred in System.Drawing.dll
[URL]
private void Form1_Load(object sender, EventArgs e)
{
Bitmap bmp = new Bitmap("grass.jpg");
}
bertino
View 3 Replies
Jun 29, 2011
BTW this issue occurs in any MS office program when the VB.Net (or even VBA) is processing information.Example: In Excel, a worksheet is displayed on the screen. I start either, a VB.Net or VBA procedure and within 30 seconds the Excel worksheet (previously displayed) blanks out. In both VB.Net and VBA,ScreenUpdating = False. My expectation is that the previously displayed screen would stay static as if I left my desk to get a cup of coffee; came back and the same ole Excel worksheet was still there?Of course, setting VBA Screen Updating = False accomplishes two goals: 1) speeds up processing and 2) saves the user from seeing unnecessary "garbage-processing" steps.Why does VBA or VB.Net ScreenUpdating = False not freeze the screen at the time of its invoking?
View 11 Replies
Nov 2, 2010
In VB6 you could BITBLT things around before refreshing the screen. In .NET, I'm aware of DrawImage, but that can only be done on a paint event rather than before anything gets painted. The issue I have is, I need to open several files with image data in them and then build a bigger image with those smaller images. Before I could open them, BITBLT them to a Buffer. As far as I can tell .NET offers no way to do this as the only function I've been able to find (DrawImage) only works within the paint event. Is there still a way to do this in VS08 or no?
View 6 Replies
Oct 1, 2011
The code below reads an Icon from an .ico file, converts the Icon read to a Bitmap and saves the bitmap using:
Bitmap.Save(PathA)
Then does:
PanelShowWrittenIconA.BackgroundImage = New Bitmap(PathA)
[code].....
View 2 Replies
Jul 6, 2011
Currently I have the following VB.NET code to make a screenshot of my desktop, but it only takes a picture of the active screen:
Public Function SaveScreen(ByVal theFile As String) As Boolean
Try
SendKeys.Send("%{PRTSC}")[code].....
The following code is how I execute the above function, if it makes any difference, which I don't think it does:
SaveScreen("C:Lexer_tracescreen.png")
Now, I need to be able to take a picture of the entire screen, not just the focused window.
View 4 Replies