Error: A Graphics Object Cannot Be Created From An Image
Jun 6, 2011
I have a scanned document in my system. It's a tiff file. You will see below the code i have written. The problem is that i get an error message. The message is like this "A Graphics object cannot be created from an image that has an indexed pixel format." [Code]
In VB.NET, I need to create an Image based on a Graphics object I have. However, there is no method such as Image.fromGraphics() etc. What should I do then?
I know that you can pass a Point array to the DrawImage method of the Graphics object to apply rotation, skewing and flipping, but I'm having trouble figuring out how to calculate the rotation. So far I've got:
Dim radius As Integer = Math.Sqrt((rect.Width / 2) ^ 2 + (rect.Height / 2) ^ 2) Dim dX As Integer = RadToDeg(Math.Cos(DegToRad(angle))) * radius Dim dY As Integer = RadToDeg(Math.Tan(DegToRad(angle))) * dX Dim new_upper_left_corner As New Point(rect.X + (rect.Width 2) - dX, rect.Y + (rect.Height 2) - dY)
This is all just off the top of my head so far, I'm not sure if it's right. How do I calculate the other points on the rectangle, and is there a built-in VB.NET method that's much easier? (Apart from Graphics.RotateTransform, which is slow and also rotates around 0,0.)
i am drawing a string to a graphics object in the eg below and then transfering it onto a e.graphics in the paint event of a panel... when doing this the font edges appear dodgey...
Here is some
Dim b As New Bitmap(100, 100) Dim g As Graphics = Graphics.FromImage(b) g.DrawString("Bla Bla Bla", New Font("Comic Sans MS", 18,FontStyle.Bold), New LinearGradientBrush(g.ClipBounds, Color.Red,
I am trying to create a function that will return a pen(System.Drawing.Pen to be exact) that will have a random color and width. I thought that something like this should do the trick:
Public Function random_pen() As Pen
Dim clr As Color = Color.FromArgb(255, random_rgb_color_gen, random_rgb_color_gen, random_rgb_color_gen) Dim pn As Pen = Pens.PeachPuff 'just a random color else i get a null exception... pn.Color = clr ' the error is here
[Code].....
However when the code is run i get an Argument Exception with the error message:"System.ArgumentException was unhandled Message="Changes cannot be made to Pen because permissions are not valid.""
I have a problem when trying to save a picture box image ( I am using vb2008 express edition)When i load my windows form I create a folder called images and the current date (eg images 24062011) using the following code.
Code: Dim fold As String = "images" & " " & Format(Now(), "ddMMyyyy") If My.Computer.FileSystem.DirectoryExists("C:usersmickdesktop" & fold) Then MsgBox(" file exists")
[code].....
this works fine and creates the folder on my desktop. I then load an image into a picturebox and try to save it using the following code which is where the problem starts.
Code: Dim filename As String = Format(Now(), "ddMMyyyy") Dim imagename As String = "image" Dim fileext As String = Drawing.Imaging.ImageFormat.Bmp.ToString
[code].....
so my problem is why does the 1st statement give me the error as surely as I have declared that fold = the folder name then that path should be correct, as the program is set to save the image automatically, not using the savefiledialogue I don't want to have to manually type in the folder name every time I use the program.
I have tried to realign the image by down and right one pixel, but still only part of the first row and column are visible when zoomed.I can't find exactly what I'm looking for online.
My computer is an HP-Pavillion dv9600 Notebook PC.
OS: Windows Vista SP2 32-bit
The following code reproduces the problem:
Public Class PictureBug Dim pxlColor As Color Dim img As Bitmap = New System.Drawing.Bitmap(My.Resources.TestBug[code]......
I am making a lunar lander game that randomizes the terrain for each new game, so each game is different. For my game, I am creating a graphics object that draws a closed curve for the terrain of the game. I am trying to then detect if a picture object collides with the graphics object.[code]...
I load my picturebox with a jpeg. If I put my DrawObjects() sub into picturebox paint event.When ever a picturebox.refresh or picturebox.visible = true (vb.net seems to draw my DrawObjects() first, then load the jpeg Image over my drawing - erasing drawing) Is there a way to get the picturebox to redraw the jpg image first then draw on it, in picturebox paint event?
I hope the question makes sense, anyways. I'm looking to know if in VB.NET, when we call an object's constructor, is there some kind of a reference that points back to the caller? I'm interested because of a corner case where I want the object being created to first be able to validate the existence of some data in the caller before it allows itself to be created. If this validation fails, I plan on throwing an exception. This corner case will never happen at runtime unless the object being created is used improperly by a programmer. The object being created is not inheriting the object I want it to validate, so I can't do anything with the MyBase qualifier.
It's bit of a "future-proofing" issue that I have a (bad) habit of doing. Not critical -- I can always leave stern comments behind as a last resort. Wanted to know if this was possible.
I'm a VB beginner.I've been playing with Graphics.DrawString by watermarking a picture with a text string. The picture below to the left comes from PictureBox with a text string drawn with Graphics.DrawString. The font style used is Arial 48 points, regular, I think. The picture in PictureBox shows just as I configure. Great... The resolution of the original Terri Hatcher picture is 300 dpi (300 x 300). Exporting this picture with Graphics.DrawString, I get the picture below to the right. The text string appears a lot bigger than previously shown in PictureBox. It turns out that the text size varies, depending on the resolution of the original picture. That's kind of odd. I develop several graphics applications in a different environment and have never seen this sort of graphics.drawstring thing. Anyway, my sample application seems to draw a text string at an image resolution of
I am trying to copy the contents of one graphics object to another, but the only was I have been able to find is based on using GDI32.DLL, which i would rather avoid using if possible.Does anyone know how/if this is possible using managed code? I don't mind if answers are in C# or VB.Net.
I created an Access Object in vb.net:Dim acApp As Object = CreateObject("Access.Application.11")en I open Access I need to pass a parameter to it though "/cmd".I read that the only way to accomplish this is through a shell - that it is not possible directly using an Access object.
I need to call this function saveBase from more than one place so i decided to send a number in variable x to know of what type to create the object named Model. however when it's within the if statemet i keep getting the error that model is not declared ![code]...
I have a dll that create container object. How can dll inform a form that the container (me) has been created. Is it possible in new sub of that class?
I have a very annoying problem, I am trying to draw an image with the Graphics class but when I do DrawImage, it automatically scales it up! heres some example code
I made a program that uses the graphics object to draw on a picture box. I used the graphics.fromhwnd(picbox) to draw on the control. The problem is if I minimize the window the drawing disapears. Might there be a way I can the image from the picbox and save it to a bitmap variable ?
When I do my form_paint event, I have quite a lot to redraw, so I'm breaking into into severals subs to make it easier to read. I'm passing the 'e' variable into my subs as shown below, is this correct?
Private Sub frmMain_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint DrawMap(e) End Sub Private Sub DrawMap(ByVal e As System.Windows.Forms.PaintEventArgs) End Sub
Am I right in copying that whole 'e as system.windows....' etc line from the form_paint details into my subs details?Just to clarify, the sub will draw directly onto the form.
We would like to know whether there is any way to interrogate a Graphics object and determine whether it is to be used to print or to render to some other canvas. We're aware of an API call that can be used but would prefer to avoid that route if possible. There's also the possibility of simply passing a flag in with the Graphics object that is True from a PrintPage event handler and False from elsewhere, but that's not ideal either. We're looking for a managed property or method accessible via the Graphics class itself, but nothing's jumping out.
I have been trying to draw spirals in vb.net. Here's a link to the formula [URL]. here's what I was trying to do. The code below is just drawing points which I was later going to edit to connect from point to point as soon as i got the spiral function working. Function Draw() Dim iImageCenterPointH As Integer = pbOut.Height / 2 Dim iImageCenterPointW As Integer = pbOut.Width / 2 Dim iCircleSpace As Integer = 10 [Code] ..... I am not 100% the output is matching the formula here's what I am getting atm ...
I need serious advice here please. I use Visual Basic Graphics Programming by Rod Stephens as a reference, and I have visited his site vb-helper.com to try some of his tutorials. I tried the scribble application and it's working out fine (you can download the snippet from his site).
What I have trouble with is zooming in. I am not sure where to start. I would like to zoom in to x2, x3 and etc. of the bitmap I am working on and I would like to be able to continue to edit the bitmap. This would mean that I have a larger pixel brush under the mouse cursor, to lay down pixels. So a x2 zoom would mean a 2 x 2 pixel.
Has someone done this. Do you have a reference I can use for this. This kind of editing is standard in almost every paint package. Even Microsoft Paint, but there is not too much basic information on how it fits together in code for vb .net. So I am looking for someone to point me in the right direction. As I said, I am using the scribble application as a base, so here is the link. [URL]..
I want to use an image I created as a button. I tried setting the the image as a background for the button but that didn't work well. So what would be another way?