C# - Save A Bitmap As A 16 - Color Grayscale GIF Or PNG?
Jan 4, 2010
In ASP.NET C# I'm trying to save a bitmap image as an 16-color non-transparent grayscale image as either a PNG or GIF. I assume I have to create a palette and then somehow attach the palette to the image but not sure how to go about doing this. The source image is a 24-bit color Bitmap.
I had write a code about get a picture from url and save as bitmap. However, there was a problem in HttpWebResponse. It didn't run the code start from HttpWebResponse.Then my whole website die there.
I have to save the webpage as image in my system folder. I am saving them using stream.....but the page is not displayed as Image....It opened only through browsers.
Locally, this code runs fine, but on our production server, it throws an exception of 'Parameter is not valid' when Bitmap.Save() is called.
Should I not be using System.Drawing.Bitmap because its not recommened based on this:
[URL]
Classes within the System.Drawing namespace are not supported for use within a Windows or ASP.NET service. Attempting to use these classes from within one of these application types may produce unexpected problems, such as diminished service performance and run-time exceptions.
What else could I use?
Bitmap myBitmap = new Bitmap(img); myBitmap.SetResolution(img.HorizontalResolution, img.VerticalResolution); // get the tiff codec info ImageCodecInfo myImageCodecInfo = GetEncoderInfo("image/tiff"); // Create an Encoder object based on the GUID for the Compression parameter category System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Compression; // create encode parameters EncoderParameters myEncoderParameters = new EncoderParameters(1); EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, (long)EncoderValue.CompressionCCITT4); myEncoderParameters.Param[0] = myEncoderParameter; // save as a tiff myBitmap.Save(input, myImageCodecInfo, myEncoderParameters);
I have a colorpicker.png file and track the pixel clicked in codebehind using GetPixel. Works like a charm, but I read that converting to a bitmap on the fly is rather heavy on the server. Therefore I saved my .png file as a .bmp as well, so that a converted file would already exist. However, I don't seem tobe able to just use the bitmap file, but need to create a new bitmap from the bitmap...
My question is: The code below works (I provide it here for those who might need it - simply add the code below to codebehind and this code in your aspx page <asp:ImageButton
also note that the image can be whatever you want - a photo or a screendump of a colorpicker from say Photoshop or VS; and note that it's wise to put everything you need in an updatepanel). Should I write something else in order to get smarter access to the bitmap?
Protected Sub cpRubrik_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles cpRubrik.Click tbUtseenderub.ForeColor = BytFarg(e.X, e.Y) End Sub Protected Function BytFarg(ByVal x As Integer, ByVal y As Integer) As Color Dim myBitmap As New Bitmap(Server.MapPath("~/img/colorpicker.bmp")) Dim clr As Color = myBitmap.GetPixel(x, y) Return clr End Function
I have an ASP.NET web form. This web form has an event handler that generates some HTML. This HTML is based on the time-of-day, that is why it is created in the event handler. Based on the time of day, an image is created programmatically via the following method:
private Bitmap GetImageForTime(DateTime time) { Bitmap bitmap = new Bitmap(); // Dynamically build the bitmap... return bitmap; }
want to call this method when the HTML is being generated. However, I do NOT want to write the image on the server. Instead, I would like to figure out a way to write it out along with the HTML. In a sense, I'm trying to accomplish the following:
protected void myLiteral_Load(object sender, EventArgs e) { string html = "<table><tr><td>"; html += GetImageForTime(DateTime.Now); // This is the problem because it's binary. html += "</td><td>"; html += GetWeatherHtmlText(); html += "</td></tr></table>"; myLiteral.Text = html; }
I'm trying to generate a bitmap off a WPF border. The whole thing sits in a asp.net app (server side of course) running .net 4.0. The problem is, that the generated image is, well, empty. Does anyone have an idea why? Here's the code.
public static byte[] Draw(int width, int height) { MemoryStream memoryStream = new MemoryStream(); Thread t = new Thread(delegate() { System.Windows.Controls.Border border = new System.Windows.Controls.Border() { Background = Brushes.Red, BorderBrush = Brushes.Green, CornerRadius = new System.Windows.CornerRadius(5), Width = width, Height = height }; border.ApplyTemplate(); RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap(width, height, 90, 90, PixelFormats.Pbgra32); renderTargetBitmap.Render(border); BitmapEncoder bitmapEncoder = new PngBitmapEncoder(); bitmapEncoder.Frames.Add(BitmapFrame.Create(renderTargetBitmap)); bitmapEncoder.Save(memoryStream); }); t.SetApartmentState(ApartmentState.STA); t.Start(); bool success = t.Join(5000); if (success) return memoryStream.ToArray(); else throw new Exception("Fail"); }
The result is quite bad, as I said the thing returns the image with the right width and height, but it's empty, so I guess I don't mess the thing up with the threading bit.
I am generating a System.Drawing.Bitmap on the fly in an ASP.NET Custom Web Server Control, and then I want to serve this bitmap as part of the WebResource, because I do not want to save it on the hosting computer. Is there a way to instruct ASP.NET to serve the generated System.Drawing.Bitmap as part of it's WebResource? (therefore making it an "Embedded Resource")
I am trying to convert a image (from url) to bitmap here the code i was using but its for using a image from your computer (file) Dim bmp As bitmap = bitmap.FromFile(TextBox1.Text) I entering a url instead of a file location but i get a URI error
i had drawed a graph by clicking a analyze button, however when i click it, it will go to a new screen. below is my coding:
[Code]....
below is the condition i want, when i click the button Analyze, the image (graph) is showed under the button with the header and template:
[Code]....
my current condition is when i click the button analyze, it will totaly display the graph only without the header and template as print screen below: how to change the coding to let the template and heaser showed together with the bar chart?
I am currently dynamically creating a bitmap and using the graphics object from the string from the bitmap to Draw a string on it like so.
System.Drawing.Graphics graph = System.Drawing.Graphics.FromImage(bmp); graph.DrawString(text, font, brush, new System.Drawing.Point(0, 0));
This returns a rectangle shaped bitmap with the string written straight across from left to right. I would like to also be able to draw the string in the shape of a rainbow. How can I do this?
I'm making an application which takes image from user upload it to server and then perform any image processing like to convert to gray or invert etc.
My problem is this when i did the process on image to gray it or invert then how to write this new file on server or is there any other way so that i would be able to show this (new) image to user and make it downloadable?
I have a class (let's call it Car) that has a property of type System.Drawing.Color (Call it CarColor). I have a script service function that uses this Car class as a return value, which works just fine. I then have another script service function that takes a Car object as a parameter. I would like to change the color of the car in Javascript, but I am finding it difficult to do so without adding another parameter that takes in the color as a string and is then translated at the server. Are there any ideas on how to set the Color property of the Car object in Javascript and maintain it through to the server?
I want simple jquery color picker for font(text) color selection not specific to particular textbox but to all txt boxes on form and must for font color selection not for background color .Simple color picker should like layout color selection.i want color[URL]
I'm using RaphaelJS. The browser renders a chart for me (which is in VML as all my users are on IE). I want the user to be able to save this image and share it normally eg paste into an email, into powerpoint, into a document etc etc.
Problem is not many things can render VML. I can easily get the VML markup describing the image back to the server. All I want to do is convert it to some kind of more universal format eg PNG, BMP, GIFF, whatever which I can then allow the user to download. I've seen lots of people struggling with this. I would have thought the seeing as VML is Microsoft's proprietary SVG format they might have at least provided facilities within their own languages (C#,VB.net) to convert VML to bitmaps. (Incidentally I can't use PHP - I've seen a lot of people attempting to solve this with a PHP based solution)
I am trying to set the border color of cells of my datagrid to an HTML color code: #c1c1c1
I have the following and would like to convert it so that it uses my color code and not the text of the color name, does anyone know the syntax? what I have is:
I m facing one problem which is related to Bitmap Image Actually My image is saved properly without iis server but when i run application on iis server then its give Exception "A generic error occurred in GDI+." I m using this code-
Byte[] bytes = (Byte[])ds.Tables[0].Rows[r][1]; MemoryStream memStream = new MemoryStream(); memStream.Write(bytes, 0, bytes.Length); System.Drawing.Bitmap origBMP = new System.Drawing.Bitmap(memStream); System.Drawing.Bitmap newBMP = new System.Drawing.Bitmap(origBMP, 100, 150); System.Drawing.Graphics objGra = System.Drawing.Graphics.FromImage(newBMP); objGra.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; objGra.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; origBMP.Dispose(); newBMP.Save(Server.MapPath("ImageUpload\" + r + ".Jpeg"), System.Drawing.Imaging.ImageFormat.Jpeg); //exception throw "A generic error occurred in GDI+." newBMP.Dispose(); objGra.Dispose();
I am trying to built a WebForm with module where the user can see himself in his webcam. I am using AForge.NET framework to control the webcam.
AForge returns every frame as Bitmap object (System.Drawing.Bitmap) and now i have to display it in my WebForm. In the Windows form I would achieve it by assigning Bitmap to the PictureBox control but how do i do it in WebForm? There is only Image control avilable (System.Web.UI.WebControls.Image) which doesn`t have any .Source propery apart form .Url. How do I display Bitmap object on the page ?
I have the following .ashx page that takes some query string parameters and returns a bitmap with the specified text written on it. The problem I have is that I am currently just manually setting the initial size of the bitmap at 100 X 100 when what I really want is to have the bitmap be just big enough to include all the text that was written to it. How can I do this?
I have a master page and set it's back ground color in the body tag <body style="background-color:Red">. Now that is fine for the Master page. How do I set the back ground color of the content page to a different color?
How to convert and Hexadecimal Color in an equivalent RGB Color? Example: FF0000 to 255,0,0. My aim is to pass this color to the method FromArgb namespace System.Drawing FromArgb Method (Int32, Int32, Int32) (Alpha is implicit as opaque) At the moment I use this code to Clear and Image and apply a opaque flat color: System.Drawing.Graphics.Clear(System.Drawing.Color.Red)); This works fine with predefined color like "Red", "Black" and so on, but not obviously with a Custom more precise color. [URL]
I am working on a website that draws fractals on the screen. It was my intention that with a right mouse click the picture could be saved to the visitor's computer. But that I get an error message "filetype blocked".The file is called test.jpg and is drawn to the screen as a bitmap. Could anybody tell me how to 'unblock' the right mouse click so that a visitor can save a picture he or she likes?Maybe it would be possible to let people download the image? But how would that work?
How can I to use System.Drawing.Bitmap class into athoer class?
using System.Data; using System.Collections; using System.Globalization; using System.Data.SqlClient; using System.Collections.Generic; using System.Globalization; using System.Text; namespace University { public class Class1 { System.Drawing.Bitmap BMP=new System.Drawing .Bitmap(); } }
when I use System.Drawing.Bitmap gives error this class does not exists