웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
png-24 포맷 알파값 이미지 로딩하기
2003.04.20 15:15
먼저, 예제입니다.
http://ezvice.com/bbs/png/png.htm
밑에 있는 세가지 그림은 모두 png파일입니다.
위의 컬러 이름 쓰여져 있는 것을 눌러보세요.
배경이 바뀌면서 png의 알파값도 같이 적용됩니다.
이것을 만드는 법을 소개하겠습니다.
참고로, 원 출처는 http://www.theaqua.com입니다.
스틱스님 홈페이지에 사용되었던 것입니다.
저 "png.htm"파일을 소스로 열어보면 아시다시피,
이 그림을 로딩하는 방법은 모두 "png.js"에 들어가 있습니다.
그럼 png.js를 열어보겠습니다.
if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer" && window.attachEvent) {
document.writeln('<style type="text/css">img, input.image { visibility:hidden; } </style>');
window.attachEvent("onload", fnLoadPngs);
}
function fnLoadPngs() {
var rslt = navigator.appVersion.match(/MSIE (d+.d+)/, '');
var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5);
for (var i = document.images.length - 1, img = null; (img = document.images[i]); i--) {
if (itsAllGood && img.src.match(/.png$/i) != null) {
var src = img.src;
img.style.width = img.width + "px";
img.style.height = img.height + "px";
img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale')"
img.src = "spacer.gif";
}
img.style.visibility = "visible";
}
}
이렇게 되어 있습니다.
여기서 중요한 부분은 몇 되지 않습니다.
바꿔야 할 부분은 거의 없고,
유념해야 할 것은, js를 htm파일에 경로를 제대로 입력하는 것과
끝에서 다섯번째 줄의 spacer.gif,
그리고 로딩하는 png가 꼭 " img src= " 구문으로 로딩되어야 한다는 것입니다.
저 spacer.gif는 가로 사이즈 1, 세로 사이즈 1의 투명한 gif로서,
표현한 png-24의 위를 살포시 덮어주는 역할을 하는데요,
이것 img.src = "images/spacer.gif"; 구문을 없애버리면
알파값이 적용되지 않습니다.
이점 유의하시기 바랍니다.
그러므로, 저 구문의 "spacer.gif"에는
가로 1, 세로 1 사이즈의 투명한 gif파일을 로딩하면 되는 것입니다.
이것만 유념하시면 png-24의 알파값 이미지를 로딩할 수 있습니다.
업로드 #1은, 이 강좌에 사용된 png.js 파일입니다.
모르는 부분이 있으면 코멘트로 어택하시기 바랍니다. (관리자라는 위치상 쪽지로 질문 받을 수 없습니다)
* Nytoner님에 의해서 게시물 이동되었습니다 (2003-04-21 17:21)
출처 : http://www.theaqua.com
http://ezvice.com/bbs/png/png.htm
밑에 있는 세가지 그림은 모두 png파일입니다.
위의 컬러 이름 쓰여져 있는 것을 눌러보세요.
배경이 바뀌면서 png의 알파값도 같이 적용됩니다.
이것을 만드는 법을 소개하겠습니다.
참고로, 원 출처는 http://www.theaqua.com입니다.
스틱스님 홈페이지에 사용되었던 것입니다.
저 "png.htm"파일을 소스로 열어보면 아시다시피,
이 그림을 로딩하는 방법은 모두 "png.js"에 들어가 있습니다.
그럼 png.js를 열어보겠습니다.
if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer" && window.attachEvent) {
document.writeln('<style type="text/css">img, input.image { visibility:hidden; } </style>');
window.attachEvent("onload", fnLoadPngs);
}
function fnLoadPngs() {
var rslt = navigator.appVersion.match(/MSIE (d+.d+)/, '');
var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5);
for (var i = document.images.length - 1, img = null; (img = document.images[i]); i--) {
if (itsAllGood && img.src.match(/.png$/i) != null) {
var src = img.src;
img.style.width = img.width + "px";
img.style.height = img.height + "px";
img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale')"
img.src = "spacer.gif";
}
img.style.visibility = "visible";
}
}
이렇게 되어 있습니다.
여기서 중요한 부분은 몇 되지 않습니다.
바꿔야 할 부분은 거의 없고,
유념해야 할 것은, js를 htm파일에 경로를 제대로 입력하는 것과
끝에서 다섯번째 줄의 spacer.gif,
그리고 로딩하는 png가 꼭 " img src= " 구문으로 로딩되어야 한다는 것입니다.
저 spacer.gif는 가로 사이즈 1, 세로 사이즈 1의 투명한 gif로서,
표현한 png-24의 위를 살포시 덮어주는 역할을 하는데요,
이것 img.src = "images/spacer.gif"; 구문을 없애버리면
알파값이 적용되지 않습니다.
이점 유의하시기 바랍니다.
그러므로, 저 구문의 "spacer.gif"에는
가로 1, 세로 1 사이즈의 투명한 gif파일을 로딩하면 되는 것입니다.
이것만 유념하시면 png-24의 알파값 이미지를 로딩할 수 있습니다.
업로드 #1은, 이 강좌에 사용된 png.js 파일입니다.
모르는 부분이 있으면 코멘트로 어택하시기 바랍니다. (관리자라는 위치상 쪽지로 질문 받을 수 없습니다)
* Nytoner님에 의해서 게시물 이동되었습니다 (2003-04-21 17:21)
출처 : http://www.theaqua.com
댓글 9
-
TheMics
2003.04.20 16:29
;ㅁ;결국 올렸군; -
TheMics
2003.04.20 16:29
그런데말야;자바스크립트 자료 아닐까; -
DearMai
2003.04.20 21:54
자바스크립트와 CSS 속성을 둘다 가진듯 ;ㅁ; -
Nytoner
2003.04.21 07:34
저도 어디로 옮겨야 할지 몰랐는데; 그냥 놔둬도 되겠네요;; CSS 속성을 가졌다면.. -
K i o r i a
2003.04.21 11:41
100% 자바 스크립트 입니다. 코딩 안에 들어가있는 CSS는 그냥 익스플로러면은 정해져있는 CSS를 쓰라는뜻. -
nxtyle
2003.04.21 12:55
그럼 PNG의 호환성[알파값이나..]을 높이는 자바라고 보면되나요?;;; -
nxtyle
2003.04.21 12:59
재밌는건...마우스 오른쪽 클릭해서 등록정보를 보면...크기는 png파일의 크긴데 파일 자체는 spacer.gif내요;;;음...자바스크립트는 이래서 무한하다는건가;;; -
styx
2003.04.21 17:06
소스를 보다가... 어째 내 소스같다라고 생각하고 다시 훑어보니;; ㅡㅡ;; -
가울이
2003.04.23 16:21
앗; 유명인사 납시오~
제목 | 글쓴이 | 날짜 |
---|---|---|
[JavaScript] 자바스크립트 버튼에 링크 걸기 | SM | 2002.02.24 |
[JavaScript] 마우스 커스 이동만으로 배경색상을 바꾸어보자 | SM | 2002.02.24 |
[JavaScript] 웹문서에 주소창 넣기 스크립트 [4] | SM | 2002.02.24 |
[JavaScript] 창을 열면 인사하는 간단한 스크립트 | SM | 2002.02.24 |
[JavaScript] 폼 버튼을 클릭하면 경고 메세지 보내기 | SM | 2002.02.24 |
자바스크립트로 변수처리하기! | 두기두바 | 2002.02.22 |
폼 항목중 입력하지 않을때 경고창 띄우기 | Topy | 2002.02.22 |
▩마우스 오버시 그림이 진해지는 스크립 | ▩윤미 | 2002.02.21 |
복사 및 오른쪽 버튼 사용금지 스크립트 | Jacylee | 2002.02.21 |
자바 스크립트 인코딩 된것 디코딩 하는 스크립트 [6] | 양창민 | 2002.02.02 |
[JavaScript] 익스플로러,네츠케이프 모두에서 iframe 과 비슷하게 해보자! [3] | 티르 | 2002.01.24 |
textarea 입력받는 글자수 제한하는 스크립트 [5] | 오기 | 2002.01.17 |
연합뉴스 속보 홈에 다는 코드입니다. [1] | 이환 | 2001.12.28 |
팝업창 다시 안뜨게 하기 [9] | Bassfeel | 2001.12.03 |
페이지마다 타이틀 변경하기 [3] | WOWpc | 2001.10.10 |
오늘 날짜 보여주기 스크립트 [3] | 정후니 | 2001.08.31 |
주소치면 이동하는 스크립트 | gain.ne.kg | 2001.07.27 |
DHTM 을 이용한 마우스 오른쪽의 메뉴 만들기.. [11] | 허진규 | 2001.03.30 |
[Tip] 페이지 이동중이라고 표시해보자~ ^_^ [10] | BiHon | 2001.03.28 |
환상적인 무지개 빛 링크 자바스크립입니다. 마우스만 대면 그냥... [8] | 은하수w | 2001.03.24 |