Asp Net Source.com's BlogAspNetSource's Official Blog

asp.net source code blog

Categories

Archives

2/18/2010 - Why is there an ASP.NET account on my machine
1/16/2010 - How to Open a Redirect in a New Window
1/2/2010 - Convert string to datetime Using C#
12/8/2009 - Using ASP.NET FileUpload to work with Images
11/24/2009 - Detect and Replace URLs in Text using Regex
11/17/2009 - Display RSS Feeds Using XmlDataSource
11/12/2009 - Get Current Theme Programmatically
11/10/2009 - Add Default ListItem to a DropDownList Control
10/20/2009 - GridView with LINQ Programatically
9/28/2009 - Server.HtmlEncode vs HttpUtility.HtmlEncode
8/20/2009 - Get List of sub Directories
7/29/2009 - gridview hide header
7/27/2009 - EmptyDataText Property in the Repeater Control
7/11/2009 - XmlDataSource GridView Example
7/5/2009 - Displaying multiple static paths by single page
6/8/2009 - Categories of classes in the System.Security.Cryptography Namespace
6/1/2009 - Delayed Loading of Page Parts
5/7/2009 - Using MySql in ASP.NET project, cofiguring, exaples with SqlDataSource, GridView, etc
4/29/2009 - What Are You Coding Right Now
4/23/2009 - Concat Byte Arrays in C Sharp
4/13/2009 - Visual Studio 2010 is Coming
3/16/2009 - automatic refresh page in some interval with javascript
2/21/2009 - we have just launched a new asp.net related site
2/18/2009 - Try Catch vs. Using
2/10/2009 - How to Set Language in web.config
1/30/2009 - A New Site for Free Online Test for Developers
1/21/2009 - Easy way to send email from gmail account using ASP.NET 3.5
1/15/2009 - Easy way to Dispaly a Word Document in Web Page
12/20/2008 - Create Yes No Voting Control
12/20/2008 - Our Team
12/15/2008 - Select xml node by other node
12/3/2008 - Forget about tedious mistakes when Validate through W3C
11/19/2008 - Fields removed when Download our Products
11/13/2008 - How to select all text in textbox when it gets focus
11/7/2008 - LINQ DataContext Class
11/3/2008 - PNGs and Browser Support
10/28/2008 - Check site loading by different locations in the world
10/27/2008 - Fix the SQL Connection Problems
10/26/2008 - Encrypt Connection Information
10/25/2008 - Generate Sitemap for your Site
10/23/2008 - Introduction to Design Patterns
10/21/2008 - Differences between Components, Controls, and Behaviors
10/20/2008 - What Is LINQ to SQL
10/19/2008 - Evolution of SQL Server
10/16/2008 - Loading Master Pages Dynamically in ASP.NET 3.5
10/15/2008 - A Brief Overview of Validation in ASP.NET 3.5
10/14/2008 - Automatically Hiding the Login Control from Authenticated Users
10/9/2008 - Check the load time of your website
10/5/2008 - Screw it, Lets RE-Design it all
10/2/2008 - Additional ASP.NET AJAX Libraries
9/29/2008 - The Big Problem of WYSIWYG Editors
9/29/2008 - New Forum for ASP.NET and Web Started
9/25/2008 - Optimize Page Loading Part 2 - Tips When work with Images
9/23/2008 - 10 Design Tips
9/19/2008 - C Sharp Features in Framework 3.0
9/15/2008 - Optimize Page Loading - 20 General Tips and Tricks
9/7/2008 - what is asp.net
9/5/2008 - Why Client Validation is not enough to secure our web app
8/29/2008 - Optimize Page Loading when works with DataBase
8/20/2008 - Highlight text in GridView using javascript
8/4/2008 - ContentPlaceHolder in title tag, Is That Bug in VS 2008
8/1/2008 - Why should we use ResolveUrl
7/31/2008 - Guid.TryParse in Framework 3.5
7/30/2008 - Redirect to current page
7/28/2008 - Validate Max Length of TextBox text
7/24/2008 - Easiest way for Row Numbering in GridView
7/23/2008 - Framework 3.5 Disadvantage of lamda expressions
7/21/2008 - LINQ - display filed from parent table in LinqDataSource and GridView
7/17/2008 - LinqDataSource and Guid passed as QueryStringParameter
7/14/2008 - Inappropriate name of DetailsView in msdn
7/9/2008 - Hide form after user download file
7/7/2008 - Menu in Master Page. How to set selected item from Page
7/4/2008 - Overview of New in Framework 3.5
7/2/2008 - New in Framework 3.5 - Generic Class HashSet
7/2/2008 - Present XmlDataSource data with Repeater
7/1/2008 - How to Validate ImageButton control through W3C
6/30/2008 - Using Find Method in Generic Controls With VB.NET - List
6/30/2008 - Using Find Method in Generic Controls With CSharp - List of T
6/30/2008 - Script injections using ASP.NET

Links

 

PNGs and Browser Support

Posted by Tihomir Ivanov on 03 November 2008 07:17
Rating: 0.00

While Internet Explorer for Windows 6 (IE6) and previous versions of IE don’t support PNGs’ alphatransparency
feature, all popular browsers — Safari, Opera, Firefox, and even the successor to IE6,
Internet Explorer for Windows 7 (IE7) — can display PNGs.

Image Filter Workaround for Using PNGs with IE6

Microsoft has a plethora of proprietary visual filters and transitions (see http://msdn2.microsoft.com/
en-us/library/ms532847.aspx) that are available to IE4+. These filters are designed to apply various
multimedia affects (transition wipes, light effects, and so on) to images in a Web page that are viewed
with IE. One of these image filters — AlphaImageLoader — lets you display a PNG with alpha-transparency
in IE6.
You can employ this filter within the HTML of your page by creating a div element and embedding into
it a bit of CSS:
<div style=”position:relative; height: 188px; width: 188px;
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader
(src=’images/image.png’,sizingMethod=’scale’);”></div>

The key property here is the filter property. While filter is not valid CSS property, it does allow you
to apply the AlphaImageLoader filter to the image specified in the parentheses. However, because code
isn’t standards-compliant, you may want to apply this property only as needed (that is, only when the
page is being displayed in IE6).
Using this method, developers can build rich image-based designs with alpha-transparency as they
would for modern browsers such as Safari, Firefox, and Internet Explorer 7, which all support PNG
alpha-transparency natively.

HTC Script Workaround for Using PNGs with IE6

Another available method for using PNGs with IE6 employs Angus Turnbull’s .htc script.
First, download the .htc script at TwinHelix Designs (www.twinhelix.com). HTC is a scripting language
only usable by Internet Explorer (because it was created by Microsoft), and this specific script contains (as
well as) applies the AlphaImageLoader filter to all images within a Web page. It can run on both Microsoft’s
IIS (Internet Information Services) Web server, as well as Open Source–based Apache.

After downloading the script, upload the script to your Web server.
Next, create a blank GIF file. This image file is 1 × 1 pixel with the color set as transparent. (Back in the
‘90s, these gems were called “single-pixel GIFs.“) You may want to also download this image from
www.twinhelix.com/css/iepngfix.
Within the .htc script, change the line that references the blank.gif file so that it points to the GIF’s
location on the server.
Create a separate CSS file (named ie.css), and include within it the following single line, referencing
the location of the .htc file:
img {
behavior: url(iepngfix.htc);
}
The behavior property attaches a script to some selector (in this case, all img elements). So, this CSS file
attaches the .htc file to all of your images, thus applying the desired filter effect to every image within
a Web page.
But, you only want to load this CSS file when the page is viewed in IE6. To do this, just add the following
conditional comment to your page’s header:
<!--[if lte IE 6]>
<link rel=”stylesheet” type=”text/css” media=”screen”
href=”ie.css” />
<![endif]-->
Conditional comments like these are understood by IE. What the comment says is, “if the browser is IE6
or below, then read the lines within the comment tags. Otherwise, ignore them.” Conditional comments
provide a convenient way of applying IE-specific HTML or CSS. Here, the ie.css style sheet loads only if
the page is displayed in IE6, letting you apply the noncompliant CSS only when it’s absolutely necessary.

Common techniques for presenting inline images may not work:

1) When placing images in the background of elements, normal behavior is for the image to tile
out. With the solution, the PNG image doesn’t because the filter property was designed to
have this effect.

2) Don’t use this solution in combination with the CSS sprites technique. Make sure that you are
using one image and only one image for the effect.

3) If you’re trying to run multiple versions of IE on one installation of the Windows operating system,
using a method like that discussed at http://tredosoft.com/Multiple_IE, conditional
comments may not work, and the work image may appear on your local system. However, the
solution could be working okay. Try using a third-party testing solution such as BrowserCam
(http://browsercam.com) to address this problem.

The IE6 script works by basically placing the image from the inline position to the background of an
element.

Color Issues with PNGs

Another issue is with color correction. Ever notice that colors on Mac tend to be lighter than those on a
PC? That’s because the people who built those respective systems made changes that created that situation.
A PNG can contain gamma information that could be used to correct the problem.
The process goes something like this: Your digital authoring software records the gamma information
along with the other data necessary to render the image in the PNG file. Then the PNG is distributed
through the Internet and is displayed on numerous operating systems and browsers. Since the gamma
information is included with the PNG file, the browser or whatever application is rendering the image
displays the PNG with the appropriate color correction.
The problem is that the information is incomplete, and the rendering application can’t recreate your original
color profile in another person’s system and doesn’t have the right settings to display color properly.
(When was the last time you calibrated your computer’s monitor?)
Essentially, the systems are guessing at the best way to present the PNG image when the gamma information
is contained in the images, and this attempt at trying to fix the problem actually makes the problem
more severe.
This is, of course, a simplification of what happens. For more information on the problem, see
http://hsivonen.iki.fi/png-gamma.
The best approach is to get rid of the gamma information stored in PNGs. How do you do this? If you
already use Photoshop’s Save for Web feature, the PNG setting leaves out the gamma information.
However, if you don’t own this software and use a Mac, try Gammaslamma (see www.plasticated.com/
GammaSlamma-1.1.dmg) from Shealan Forshaw to download the .dmg file.

 Comments:
No comments yet.
 Add New Comment:
Name*:    Rating:
E-mail*:
Website:
Country:  Country flag
Comment*:
B I U url img quote                                    
Created By AspNetSource.com
Are you human ?      


 
Asp Net Source.com


 
Our Sponsors:  Asp.net file upload component  |   Flash file uploader