투명도(그래픽)

Transparency (graphic)
투명한 배경을 가진 아폴로니안 구체 패킹GIF 애니메이션

투명성은 많은 그래픽 파일 형식에서 가능하다."투명성"이라는 용어는 다른 사람들에 의해 다양한 방식으로 사용되지만, 가장 간단한 것에는 "완전한 투명성" 즉, 완전히 보이지 않는 것이 있다.그래픽의 일부만 완전히 투명해야 하며, 그렇지 않으면 볼 것이 없을 것이다.더 복잡한 것은 "부분 투명성" 또는 "투명성"[citation needed]으로, 그래픽이 컬러 유리와 같은 방식으로 부분적으로 투명하다는 효과를 얻을 수 있다.궁극적으로 인쇄된 페이지나 컴퓨터 또는 텔레비전 화면은 한 지점에서 하나의 색만 될 수 있기 때문에, 부분 투명성은 항상 색을 혼합하여 어느 정도 수준에서 시뮬레이션된다.색을 섞는 방법은 여러 가지가 있어 투명성이 모호한 경우도 있다.

게다가, 투명성은 종종 그래픽 포맷의 "추가"이며, 일부 그래픽 프로그램들은 투명성을 무시할 것이다.

애니메이션 PNG(APNG) 8비트 투명도

투명성을 지원하는 래스터 파일 형식에는 투명 색상 또는 알파 채널을 통해 GIF, PNG, BMP, TIFF, TGA, JPEG 2000이 포함된다.

대부분의 벡터 형식은 단순히 주어진 지점에 어떤 물체를 배치하는 것을 피하기 때문에 투명성을 암시적으로 지지한다.여기에는 EPSWMF가 포함된다. 벡터 그래픽의 경우, 이것은 엄격하게 투명성으로 보이지는 않지만 래스터 형식의 투명성과 동일한 주의 깊은 프로그래밍이 필요하다.

보다 복잡한 벡터 형식은 위와 같이 그래픽 내의 요소들 간의 투명성 결합을 허용할 수 있다.여기에는 SVGPDF가 포함된다.

적합한 래스터 그래픽 편집기는 체커보드 패턴과 같은 특수 패턴으로 투명성을 보여준다.

투명 픽셀

이 이미지에는 이진 투명성이 있다(일부 픽셀은 완전 투명, 다른 픽셀은 완전 불투명).그것은 단색이기 때문에 어떤 배경에도 투명할 수 있다.

단일 GIF 또는 PNG 이미지의 팔레트에 있는 하나의 색상 항목은 실제 색상이 아닌 "투명"으로 정의할 수 있다.즉, 디코더가 이 값을 가진 픽셀과 마주쳤을 때, 이미지가 배치된 화면의 부분의 배경색으로 렌더링되며, 배경 이미지의 경우처럼 픽셀 단위로 다른 경우에도 렌더링된다.

응용 프로그램에는 다음이 포함된다.

  • 직사각형이 아닌 이미지는 투명한 주변을 사용하여 필요한 직사각형까지 채울 수 있다; 이미지에는 구멍이 있을 수 있다(예: 링 모양).
  • 텍스트 실행에서, 문자 집합에서 사용할 수 없기 때문에 이미지가 사용되는 특별한 기호는 투명한 배경을 주어 일치하는 배경을 얻을 수 있다.

같은 색상이 사라지는 것을 피하기 위해 투명한 색을 신중하게 선택해야 한다.

대부분의 인기 있는 웹브라우저들은 투명한 GIF 이미지를 표시할 수 있지만, 이러한 제한된 형태의 투명성조차도 패치 적용이 가능하다.이러한 지원은 특히 기기나 드라이버의 투명성에 대한 지원을 포함하지 않는 인쇄 장치(PostScript 등)에 대해서는 인쇄로 확장되지 않는 경우가 많다.웹 브라우저의 세계 밖에서, 투명한 GIF 파일들에 대한 지원은 상당히 성공적이거나 실패적이다.

투명 픽셀의 에지 제한

이 이미지는 2진수 투명성을 가지고 있다.그러나 그레이스케일이며, 안티앨리어싱이 있어 흰색 바탕에만 어울린다.다른 배경을 배경으로 하면, 회색 음영으로부터 "유령화" 효과를 얻을 수 있을 것이다.

투명한 배경을 가진 문자와 다른 이미지의 가장자리는 회색으로 되어서는 안 된다. 회색은 일반적으로 문자/이미지의 색과 배경의 색 사이의 중간 색상에 사용되며, 일반적으로 검은색 글자와 흰색 배경 사이의 중간 색상에 사용된다.그러나, 예를 들어, 빨간색 배경이 있는 경우 중간 색상은 짙은 빨간색일 것이다.회색 가장자리 픽셀은 추하고 불명확한 결과를 가져올 것이다.가변 배경색에는 적합한 고정 중간 색상이 없다.

알파 채널별 부분 투명도

이 이미지는 부분 투명도(완전 투명도와 완전 불투명 사이의 254개 가능한 투명도 수준)를 가지고 있다.그것은 안티앨리어스임에도 불구하고 어떤 배경에도 투명할 수 있다.

PNG나 TIFF와 같은 일부 이미지 형식도 알파 채널을 통해 부분 투명성을 허용해 에지 한계 문제를 해결한다.각 픽셀이 투명하거나 투명하지 않은 대신 부분 투명 254레벨로 설정할 수 있어 일부 배경 영상이 전경 영상을 통해 보여질 수 있다.

부분 투명성의 주요 용도는 그래픽에서 "소프트 에지"를 만들어 배경과 혼합하는 것이다.[1]단색 또는 회색안티앨리어싱 색조를 참조하십시오.부분 투명성은 또한 워터마크나 다른 로고처럼 이미지를 덜 두드러지게 하거나 비디오 게임에서 유령과 같은 무언가를 투시하는 데 사용될 수 있다.이미지 편집 프로그램에서 알파 채널에 애니메이션을 적용하면 여러 이미지 간에 매끄러운 전환이 가능하다.

부분적으로 투명한 색상과 배경("합성")을 결합하는 과정은 종종 잘못 정의되고 결과가 모든 경우에 정확하게 동일하지 않을 수 있다.예를 들어, 색상 보정을 사용 중인 경우 색상 보정을 전후하여 색상을 합성해야 하는가?

이 이미지는 #6080A0의 배경색에 위의 투명한 PNG 이미지를 각각 오버레이한 결과를 보여준다.중간 이미지의 글자에 회색 프링글을 적어 두십시오.
이것은 위 이미지들이 편집될 때, 예를 들어, 어떻게 보이는지를 보여준다.회색과 흰색 체크무늬는 투명성으로 변환될 것이다.

클리핑 경로에 의한 투명성

완전한 투명성에 대한 대안적인 접근법은 Clipping 경로를 사용하는 것이다.자르기 경로는 다른 그래픽과 함께 사용되는 모양이나 윤곽선일 뿐이다.길 안의 모든 것이 보이고, 길 밖의 모든 것이 보이지 않는다.경로는 본질적으로 벡터지만 잠재적으로 벡터 데이터와 비트맵 데이터를 모두 마스킹하는 데 사용될 수 있다.클리핑 경로의 주요 용도는 PostScript 파일에 있다.

컴포지팅

일부 투명성 규격은 모호하지만, 다른 규격은 두 가지 색상을 어떻게 구성해야 하는지에 대한 수학적 세부사항을 제공할 수 있다.이것은 복합적인 계산이 어떻게 작동하고, 기대되는 결과를 산출할 수 있으며, 또한 놀라운 결과를 산출할 수 있는지에 대한 꽤 간단한 예를 제공한다.

이 예에서 두 개의 그레이스케일 색상을 합성한다.그레이스케일 값은 0.0(흰색)에서 1.0(검은색) 사이의 숫자로 간주된다.강조하자면, 이것은 투명성을 위한 하나의 가능한 규칙일 뿐이다. 투명성을 가지고 작업하는 경우, 상황에 맞게 사용 중인 규칙을 확인하십시오.

색상 G1과 G2가 조합되는 지점의 색상은( G1 + G2 ) / 2이에 따른 몇 가지 결과는 다음과 같다.

  • 색상이 같은 곳에서는 결과가 같기 때문에 같은 색이다.( G1 + G1 ) /2 = G1.
  • 한 가지 색상(G1)이 흰색(0.0)인 경우 결과는 다음과 같다.G2 / 2. 이것은 항상 G2의 어떤 0이 아닌 값보다 작기 때문에 결과는 G2보다 희다. (G2가 흰색인 경우에는 쉽게 역전된다.)
  • 한 가지 색상(G1)이 검은색(1.0)인 경우 결과는 다음과 같다.( G2 + 1 ) / 2이것은 항상 G2 이상일 것이다. 그래서 결과는 G2보다 더 어둡다.
  • 그 공식은 그 이후부터 일치한다.( G1 + G2 ) / 2 = ( G2 + G1 ) / 2즉, 두 그래픽 중 어느 순서가 혼합되어 있는지는 중요하지 않다는 것을 의미한다. 즉, 두 그래픽 중 어느 것이 위에 있고 어떤 것이 아래에 있는지.
  • 그 공식은 다음부터 연관성없다.
( ( G1 + G2 ) / 2 + G3 / 2 = G1 / 4 + G2 / 4 + G3 / 2 ( G1 + G3 ) / 2 = G1 / 2 + G2 / 4 + G3 / 4

이것은 투명성을 위해 세 개 이상의 물체와 이 규칙을 결합할 때 최종 색상은 계산을 하는 순서에 따라 매우 많이 좌우된다는 것을 의미하기 때문에 중요하다.

비록 그 공식은 간단하지만, 이상적이지 않을 수도 있다.밝기에 대한 인간의 인식은 선형적이지 않다 - 우리는 반드시 0.5의 회색 값이 흑백의 중간 정도라고는 생각하지 않는다.투명성이 가장자리를 부드럽게 하는 데만 사용되는 경우 그러한 세부사항은 문제가 되지 않을 수 있지만, 보다 복잡한 설계에서 이것은 유의적일 수 있다.투명성을 가지고 진지하게 작업하는 대부분의 사람들은 결과를 볼 필요가 있을 것이고 필요한 결과에 도달하기 위해 색상이나 알고리즘을 만지작거릴 수도 있다.

이 공식은 각 채널에 공식을 별도로 적용하면 RGB 컬러나 CMYK 컬러로 쉽게 일반화할 수 있다.예를 들어, 최종red = ( R1 + R2 ) / 2그러나 그것은 모든 컬러 모델에 적용될 수 없다.예를 들어, Lab 색상은 놀라운 결과를 만들어낼 것이다.

대안 모델은 투명성을 위해 조합되는 각 요소의 모든 점에서 0과 1 사이에 연관 색상과 불투명도가 있다는 것이다.각 컬러 채널에 대해 이 모델(강도의 채널인 경우)을 사용할 수 있음G2불투명성T2강렬하게 채널을 겹치다.G1불투명성T1결과는 다음과 같은 강도의 채널이 될 것이다.(1 - T2) * G1 + G2, 및 불투명도1 - (1 - T2) * (1 - T1). 각 채널은 구성 전에 해당하는 알파 값으로 곱해야 한다(즉, 사전 배양 알파라고 함).SVG 파일 사양은 이러한 유형의 혼합을 사용하며, PDF에서 사용할 수 있는 모델 중 하나이다.

알파 채널은 알파 채널이 다른 모든 채널에 동등하게 적용되는 불투명도를 제공하는 방식으로 구현될 수 있다.위의 공식으로 작업하려면 불투명도를 외부 표현("RGBA"와 같은 8비트 샘플을 사용하는 경우 대개 0에서 255까지) 범위까지 스케일링해야 한다.

PDF의 투명성

PDF 표준 버전 1.4(Adobe Acrobat 버전 5)부터 투명성(투명성 포함)이 지원된다.PDF 파일의 투명성은 창조자가 객체에 그림자를 추가하고 객체를 반투명하게 하며 객체를 서로 또는 텍스트로 혼합하는 등 다양한 효과를 얻을 수 있게 한다.PDF는 가장 일반적인 평균화 방법뿐만 아니라 여러 가지 다른 혼합 모드를 지원하며, 겹치는 많은 객체를 합성하는 규칙은 선택을 허용한다(예: 개체 그룹이 배경과 혼합되기 전에 혼합되는지 또는 각 객체가 백그라운드로 혼합되는지 여부).

PDF 투명성은 매우 복잡한 모델이며, Adobe의 원래 사양은 100페이지가 넘는다.서로 다른 색 공간을 가진 객체를 혼합하는 것은 호환성 문제를 야기할 뿐만 아니라 까다롭고 오류가 발생하기 쉽다는 것이 복잡성의 주요 원인이다.PDF의 투명성은 PDF 시청자가 PDF를 이해하지 못하는 오류를 발생시키지 않도록 설계되었다. PDF는 모든 요소를 완전히 불투명하게 표시할 뿐이다.그러나, 이것은 나이든 시청자나 PDF 프린터 등을 가진 사용자들이 원래의 디자인과는 전혀 다른 것을 보거나 인쇄할 수 있기 때문에 양날의 검이었다.

PDF 투명성 모델이 워낙 복잡하다는 것은 그만큼 지원이 잘 안 된다는 뜻이다.RIP나 프린터가 PDF를 투명하게 출력하는 데 문제가 있는 경우가 많다는 뜻이다.이에 대한 해결책은 이미지를 래스터화하거나 벡터 투명도 평탄화를 PDF에 적용하는 것이다.그러나 벡터 투명성 평탄화는 극히 복잡하며 몇 가지 전문가 패키지에 의해서만 지원된다.

포스트스크립트의 투명성

PostScript 언어는 PostScript 수준에 따라 전체(부분이 아닌) 투명성에 대한 지원이 제한적이다.부분 투명성은 pdfmark 확장 기능으로 사용할 수 있으며,[2] 많은 PostScript 구현에서 사용할 수 있다.

레벨 1

레벨 1 PostScript는 다음 두 가지 방법을 통해 투명성을 제공한다.

  • 1비트(모노크롬) 영상은 마스크로 처리할 수 있다.이 경우 1비트는 어떤 단일 색으로도 칠할 수 있는 반면 0비트는 전혀 칠하지 않는다.이 기법은 둘 이상의 색상 또는 벡터 모양으로 일반화할 수 없다.
  • 클리핑 경로를 정의할 수 있다.이것들은 이후의 모든 그래픽에서 볼 수 있는 부분을 제한한다.이것은 모든 종류의 그래픽에 사용될 수 있지만 레벨 1에서는 경로의 최대 노드 수가 1500개로 제한되어 복잡한 경로(예: 사람의 머리 사진에서 머리카락을 자르는 것)가 실패하는 경우가 많았다.

레벨 2

레벨 2 PostScript에는 특정 투명 기능이 추가되지 않는다.그러나 패턴의 사용으로 임의의 그래픽은 어떤 벡터나 텍스트 연산에 의해 정의된 마스크를 통해 그려질 수 있다.그러나 이것은 실행하기에 복잡하다.또한 이는 구현 한계에 도달하는 경우가 너무 많았으며, 이 기술을 제공하는 애플리케이션 프로그램은 거의 없었다.

레벨 3

레벨 3 PostScript는 래스터 이미지에 투명성 옵션을 추가한다.투명한 색상 또는 색상 범위를 적용하거나 별도의 1비트 마스크를 사용하여 알파 채널을 제공할 수 있다.

캡슐화된 포스트스크립트

EPS 파일에는 PostScript가 포함되어 있으며, PostScript는 레벨 1, 2 또는 3일 수 있으며 위의 기능을 사용한다.EPS 파일의 보기를 화면에 표시하는 데 일반적으로 사용되는 EPS 파일의 미리 보기에서 보다 미묘한 문제가 발생한다.시사회에는 투명성을 설정하는 실행 가능한 기법이 있다.예를 들어, TIFF 미리보기는 TIFF 알파 채널을 사용할 수 있다.그러나 많은 응용 프로그램에서는 이러한 투명성 정보를 사용하지 않으므로 미리보기를 직사각형으로 표시한다.포토샵에서 개척되어 다수의 프리프레스 어플리케이션에 의해 채택된 세미 수용 기법은 EPS의 표준 위치에 클리핑 경로를 저장하고 그것을 디스플레이에 사용하는 것이다.

또한, EPS 미리보기를 생성하는 프로그램들 중 몇몇은 미리보기에서 투명성 정보를 생성할 것이다.

어떤 프로그램들은 미리보기의 모든 흰색을 투명하다고 처리함으로써 이것을 극복하려고 노력했지만, 일부 흰자가 투명하지 않은 경우에는 이 역시 문제가 있다.

최근에는 미리보기를 아예 무시하는 애플리케이션이 등장하고 있어 포스트스크립트를 해석해 미리보기의 어떤 부분을 그릴지 정보를 얻기도 한다.

참고 항목

참조

  1. ^ Croft, Jeff. "Creative Use of PNG Transparency in Web Design". digiwebs. Retrieved 14 September 2020.
  2. ^ Adobe (2005-10-02). "pdfmark Reference Manual" (PDF). Retrieved 2009-08-12.