PhotoServer 5

> 포토서버

주요 기능

일반적인 포토 명령

<img src="Koala.jpg?cmd=thumb&width=300" />

위와 같이 이미지 파일 URL에 thumb과 같은 포토서버의 포토 명령을 사용해 간편하게 썸네일을 생성해 웹 브라우저로 전송할 수 있습니다. 원본 이미지에 대한 썸네일을 미리 생성할 필요 없이 포토서버가 실시간으로 생성합니다. 썸네일을 별도로 저장하기 위해 스토리지를 낭비할 필요가 없습니다.

포토서버의 강력한 이미지 처리 엔진 및 캐시 엔진은 이미지 프로세싱을 최소화하면서 최고의 성능으로 이미지를 전송합니다. 원본 이미지가 수십 만개가 넘는 대형 이미지 서버에서도 원활하게 동작합니다.

사용자 정의 포토 명령

<img src="Koala.jpg?cmd=ucWhiten" />

ucWhiten은 포토서버의 기본 명령이 아닙니다. 다음과 같이 일반 포토 명령과 레이어 포토 명령을 조합해서 만들어낸 새로운 명령입니다. 기초적인 이미지 프로세싱 명령을 응용해 복합적인 이미지 효과를 생성할 수 있습니다.

ucWhiten.pscmd
; 바탕 이미지를 복사해 블러 레이어를 생성합니다.
cmd=layercopy&from=background&name=blurlayer
; 블러 레이어에 블러링 효과를 줍니다.
cmd=blur&layer=blurlayer&hradius=20&vradius=20
; 블러 레이어를 밝게 보정합니다.
cmd=adjust&layer=blurlayer&contrast=20&brightness=40
; 바탕 이미지 위에 블러 레이어를 SoftLight 모드로 합성합니다.
cmd=layerblend&from=blurlayer&to=background&method=softlight&alpha=255
                    

기타 기능

서버 이미지 보호 - 새로운 디폴트 명령을 사용하면 서버에 저장된 모든 이미지에 대해 로고를 출력해서 내보내는 이미지 보호 기능을 쉽게 적용할 수 있습니다. 웹 사용자는 서버에 저장되어 있는 원본 이미지에 절대 접근할 수 없습니다.

강력한 이미지 캐시 - 결과 이미지에 대해 IIS 자체 메모리 캐시를 사용하도록 개선해 웹 서버 성능을 극대화시켰습니다. 대용량 파일 캐시 매니저는 IIS 응용 프로그램 풀 재생시 성능 저하 없이 동작하도록 개발되어 지속적인 서비스가 가능합니다.

64비트 포토서버 - Windows Server 2008 R2와 같은 고성능 64비트 서버에서 최적화되어 동작할 수 있도록 모든 코드는 64비트로 재 작성되었습니다.

간단한 이미지 프로그래밍

ASP 환경에서 이미지를 로딩한 후 여러 가지 이미지 처리 작업을 진행할 수 있습니다. 이미지 처리 작업을 마친 후 JPEG 또는 PNG로 저장할 수 있습니다.

ASP/VBScript

Set ps5conn = Server.CreateObject("PhotoServer5.Connection")
'포토서버와 연결합니다.
If ps5conn.Connect("localhost", 19985, 10) = 0 Then
    Set img = ps5conn.CreateImage()
    '이미지를 로딩한 후 썸네일 이미지를 생성합니다.
    If img.Load("C:\inetpub\wwwroot\images\sample.jpg") = 0 Then
        img.Thumbnail 300, 300, true, true, "ffffff", false
        '썸네일을 저장합니다.
        img.Save "C:\inetpub\wwwroot\images\thumb.jpg"
    End If
    img.Close
    ps5conn.Close
End If
                    

다양한 웹 개발 환경 지원

위 예제와 동일한 기능을 하는 ASP.NET, JSP 예제입니다.

ASP.NET/C#

using TABS.PhotoServer5;

Ps5Connection ps5conn = new Ps5Connection();
if (ps5conn.Connect("localhost", 19985, 10) == 0)
{
    Ps5Image img = ps5conn.CreateImage();
    if (img.Load(@"C:\inetpub\wwwroot\images\sample.jpg") == 0)
    {
        img.Thumbnail(300, 300, true, true, "ffffff", false);
        img.Save(@"C:\inetpub\wwwroot\images\thumb.jpg");
    }
    img.Close();
    ps5conn.Close();
}
                    

JSP/Java

import tabs.photoserver5.*; 

Ps5Connection ps5conn = new Ps5Connection();
if (img.Connect("localhost", 19985, 10) == 0)
{
    Ps5Image img = ps5conn.CreateImage();
    if (img.Load("C:\\inetpub\\wwwroot\\images\\sample.jpg") == 0)
    {
        img.Thumbnail(300, 300, true, true, "ffffff", false);
        img.Save("C:\\inetpub\\wwwroot\\images\\thumb.jpg");
    }
    img.Close();
    ps5conn.Close();
}
                    

분산 프로그래밍 환경

웹 애플리케이션 서버에서 이미지 프로세싱 기능이 필요하다고 해서 모든 웹 서버에 포토서버를 설치할 필요가 없습니다. 웹 서버와 포토서버 관계를 클라이언트/서버 형태로 제공하므로 이미지 엔진을 웹 서버와 완전히 독립시켜 운영할 수 있습니다.

분산 프로그래밍 환경

이와 같은 분산 구조는 시스템 확장에도 매우 큰 이점을 제공합니다. 포토서버를 설치한 이미지 웹 서버를 쉽게 이중화해 안정성을 확보할 수 있으며, 손쉽게 서버를 증설해 로드 밸런싱을 할 수 있습니다.

네트워크 공유 액세스

인터넷 게스트 계정으로 동작하는 IIS 익명 인증을 타 계정으로 변경하지 않고도 네트워크 공유 폴더에 저장된 이미지 파일을 액세스할 수 있습니다. 공유 리소스에 접근할 수 있도록 Credential 오브젝트를 제공합니다. Credential 오브젝트를 사용하면 필요한 시점에 인증 후 네트워크 공유 폴더를 사용하고 사용을 마쳤으면 원래 권한으로 돌아옵니다.

Set ps5conn = Server.CreateObject("PhotoServer5.Connection")
Set credential = Server.CreateObject("PhotoServer5.Credential")

destFolder = "\\192.168.1.56\Images\samples"
encCredential = "FBQskEaf7559m4up1Yp2Gz207lBeyO0jZQeOhpyMFfEcxbru/gkP6A=="

If ps5conn.Connect("localhost", 19985, 10) = 0 Then
    Set img = ps5conn.CreateImage()
    If img.Load("C:\inetpub\wwwroot\images\sample.jpg") = 0 Then
        img.Resize 300, 0
        '자격 증명을 사용해 네트워크 파일 서버로 로그인
        credential.Impersonate(encCredential)
        'FileSystemObject로 네트워크 공유 폴더 아래에 서브 폴더 생성
        Set fso = Server.CreateObject("Scripting.FileSystemObject")
        Set f = fso.CreateFolder(destFolder)
        '네트워크 공유 폴더에 이미지 저장
        img.Save destFolder & "\resize.jpg"
        credential.Revert
    End If
    img.Close
    ps5conn.Close
End If
                    

기타 기능

웹 이미지 포맷 지원 - 이미지 포맷 중 JPEG, PNG, TIFF, GIF, BMP 파일을 읽어서 처리할 수 있습니다. 처리한 이미지는 웹에서 사용되는 JPEG, PNG 파일 포맷으로 저장할 수 있습니다.

EXIF 정보 참조 - 디지털 카메라로 찍은 이미지의 경우 이미지 파일 내에 EXIF 정보가 존재합니다. 이미지 컴포넌트는 이를 읽어 출력할 수 있습니다.