[VB2005] Rotateflip Image Is Eating More Memory Than Non Rotated Image ?
Sep 8, 2009
I'm writing a program that print images in full page. I.E, I print image on A4 paper, landscape. When I print an image without rotating it (the image IS landscape), the image uses all the space of the page, and is not cropped. it is OK. The print job is about 1.5 Mb. When I print an image WITH rotating it (the image IS PORTRAIT ), the image uses all the space of the page, and is not cropped. it is OK. The print job is about 28 Mb. The images are about 2000x3000 pixels, and stored in JPEG files (about 2.5 Mb each). I suppose that the 28 Mb should be the "uncompressed" size of the picture, and 1.5Mb, the compressed size...
By the way, When I look at the task manager, my application memory usage grows by job size, which seems to be OK. It grows either 1,5 Mb if no rotation is occured, and 25-30Mb when rotation occured.
Since I can print hundreds of image at once, my print queue will grow abnormaly if I need to rotate all
Ok so i have an jpg image of around 8.10mbs at around 13424 x 11344 pixels, i need to load the whole image in to a scrolling picturebox, is they anyway to do this without using so much memory for example like what google maps does n cuts the image down and some how stitches it all back to gether?
I have a image with a transparent background. I clone it, rotate it, and save it in a picture box. Works fine (in that I can see the original object overlaid on the background image below it). However, the original unrotated image is also superimposed on the .image layer *with* the rotated one. Try as I can, I can't stop it from appearing.
Curiously enough, if I change the image to non-transparent (a .bmp instead of a .gif, for example), I don't have the problem. Of course, I also can't see the background {:<(
Code snippet: Dim myGraphic As Graphics Dim m As Image m = ArtHorImage.Clone
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.)
In VB 2005, I am calling a C++ DLL function that returns the address in memory and size in bytes of a jpeg image. How can I load that jpeg image directly from memory into a picture box in my VB form? I cannot afford to save it to disk first.
I am attempting to write a routine that will accurately scale an image to the specified size while keeping the original aspect ratio of the source image.Most [if not all] of the images that the program will be working with will either be 4x3 or 3x4 ratio and normally will be output at 800x600 or 600x800The thing that has me stumped at the moment is what kind of formula I would need to use to resize at image that does not meet the 4x3 ratio. Something like say a 600x255 image or a 255x600 or some other oddball size.
I have a project where the user wants an image stored in a Blob field of a MYSql database. I have been searching for info on the net but so far have not found a good solution for this.In this case the record will already exist in the database and I will need to insert the image into the existing record based on the recordid.Is there a simple way to do this perhaps with a stored procedure and an execute statement. I have very little experience with MySql and little with storing images in a database as well. Most often I will store the images as files and use a pointer in the db record but this user wants it in the db so here we are.
I am using Visual Studio 2005 with Service Pack1 installed. I am working on VB.Net project. However I am constantly choked up even I am in editing mode, i.e., I am NOT in debugging mode. Here is what bothers me:
I'd like to verify if an image control has an image loaded . If it does , I want to unload that image (and load no image) , but if the image control has no image loaded , I want to load an image . Is it possible ?
If ImageMY.Image.Equals(Nothing) Then ImageMY.Image = System.Drawing.Image.FromFile("C:ImageBlaBlaBla.jpg") Else
I create a program that loop the images in the picturebox, now the concern is while the images is looping or changing the usage of the memory of the usage of the computer is going bigger.i mean it's added the new usage memory when picture is changing. i wanted to dispose the previous usage so that maintain the usage level, but i don't know how
I'm basically making an app to take screen shots in a game as I chat. There will be a bit more to it later, and I will likely be using PNG but that is besides the point for now.Whenever I take a screenshot and save, doesn't matter If I am saving converting quality or using system.drawing directly, the memory use goes up about 1.5MB per save. I'm rather new to VB.Net so I can't really figure out why...as far as I can tell I release everything.[code]Ihave tried setting it to nothing with no luck, and aside from that memory slowly goes up per time Enter is pressed. I'm not sure why data would be saving to memory when Subs and Functions are supposed to release data after use?
I have some questions about bitmaps and such. I am using the IDXSurfaceFactory::LoadImage Method to load an image and now I want to access its memory buffer, so I can do some direct memory manipulation and copy the content to another buffer afterwards (no BitBlit!). I managed to successfully use LoadImage, but I have no idea how to retrieve the pointer to the memory buffer and other informations. I want to basically know everything about, how and where the image is stored in the memory buffer.
Does windows always load images as BGR regardless of its original format? if not, how can I find out if the loaded image is stored as BGR or RGB. How can I find out how many bits each color has? How can I find out if the image is stored y-reversed? And if you load an indexed png for example, with one color marked as transparent, how can I find out which color is used for transparency?
I'm searching for a solution to resize image(jpg) being passed in from an array in Picturebox Control on .NETCF 2.0 in VB.NET without resorting to using the opennetcf library, is it possible?
I'm trying to load a .ani file into a bitmap so it can be displayed on a control or on a form. The following code has been paired down from a short 'Download Sample' which I then edited to point to my .ani file. As indicated in the following code, I can load a .gif file, but I can't load a .ani file.
Public Sub imageload(ByVal index As Integer, ByRef imagedescription() As String) Dim da As New OleDbDataAdapter("Select Foto From Images where Photoindex = " & index & ";", Form1.baglanti) Dim dt As New DataTable Dim ms As New MemoryStream
[code]....
i was take "Parameter is not valid." error pff where is my mistake?
I created a new cursor (it works properly, I tried it in windows 7) but is not working for me in the program.I took the Windows cursor (aero_helpsel_xl, from C:WindowsCursors) and it appears to me the same error.i use with this code:
Me.Cursor = New Cursor("Patch..")
The problem say:: "{"Image format is not valid. Image file may be corrupted.
Parameter name: stream "}"
edit: I realized what the problem ... It can read only cur files with 24-bit color and lower - but it shows only two colors: black and white.
I have an app that loads a jpg into a picyure box, then updates exif data in exifworks classThe problem is that when I save the image(from image used for picture box) or class (to save exif data) then try to delete, sometimes I get success, others it won't allow delet I have gone to the trouble of using gc.collect, do events, put the delete in a timer & wait for the delete before continuing & still get the problem
I've been searching for hours tonight searching existing posts, other websites and all i can find are examples of how to capture a image from a webcam.Does anyone have any code that simple talks to the camera device via WIA, and then saves every image found on the device to a hard drive?I found this code below. Credit i cant tell you as i have a bunch of different flavors of code, but this only saves the file as a tmp file, and not the actual image file i expected after selecting?
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?