2009-08-24 4 views
1

이미지 파일 작업을 수행하려고합니다. 특히 이미지 파일 형식을 다른 것으로 변환하려고합니다. 누구든지 이것을 달성 할 수있는 방법에 대한 예제/가이드를 알고 있습니까? 어떤 종류의 프로그래밍 언어가 일반적으로 사용됩니까?사람들이 이미지 파일을 프로그래밍 할 때 사용하는 프로그래밍 언어는 무엇입니까?

편집 :은 분명히 내가 ++ 심지어 그래서 C에서만 유용 해요 당신에게 :)

에게 중요한 정보를 모르는 이것에 대해 자바, 파이썬 그래서 조금 알고, 웹 디자인 언어 (HTML, CSS, Javascript/JQuery).

특히 5 차원 (X, Y, Z, 시간, 채널)의 이미지 파일을 가지고 채널 1x를 증가시키는 알고리즘에 따라 1 청크의 5d 행렬의 각 좌표에있는 픽셀 값을 정렬합니다. , 그리고 나서 같은 Y, Z, 시간에 대한 모든 X, 그 다음에 다음 Y에 대한 모든 X, 그러나 같은 Z, 시간 등등. 내가 원하는 것은 각 픽셀에 대한 원시 데이터를 .tiff 형식으로 재 배열하는 것입니다 이는 IFD로 정의되며 각 IFD는 X, Y 데이터에 해당하며 Z 시간 채널 IFD가 있습니다.

기본적으로 이미지의 각 픽셀에있는 이진 값을 다시 정렬하려고합니다. 예를 들어, 일부 이미지 유형은 각 픽셀 좌표 (X, Y, Z, 시간, 채널)에서 정의 된 그레이 스케일의 경우 0-255 사이의 숫자를 갖습니다. 그 시나리오에서, 저는 좌표의 16 진수 값을 잡고 위의 .tif 지정에 따라 올바른 순서로 놓기를 원합니다.

또한 Windows 및 Mac에서 실행됩니다. 파이썬으로 할 수 있을까요?

+0

애플리케이션이 웹에서 어떤 환경에서 작동합니까? 데스크톱? 어떤 운영 체제가 실행됩니까? 이미지를 조작하고 변환 할 수있는 많은 프로그래밍 언어가 있습니다. PHP는 마음에 떠오르는 언어 중 하나입니다. 그러나 언어 선택은 원하는 것을 수행하는 것보다 더 원하는 언어에 달려 있습니다. – Waggers

+0

당신은 어떤 언어를 능숙합니까? 어떤 종류의 이미지 파일을 변환 하시겠습니까? 가장 대중적인 언어는이를 처리 할 라이브러리가 있어야합니다. – nfm

+0

나는 아직도 네가하고 싶은 것을 이해하지 못한다. "픽셀 강도 데이터가 오는 순서를 재정렬"한다는 것은 무엇을 의미합니까? –

답변

3

사용자 지정 파일 형식으로 작업하기 때문에 메모리 구조에 대한 바이트 수준 액세스를 허용하는 언어 (거의 모든 언어 포함)에서이 작업을 수행 할 수 있습니다. C++, Java 및 Python에 익숙하므로 C++, Java 또는 Python을 사용하는 것이 좋습니다.

+0

@musicGenesis : awesome, thanks. 감사합니다. 당신은 이것에 어떤 가이드든지 건의 할 수 있는가, 또는 나 자신을 연구 할 필요가있을 황금 google 수색 기간? "Python 바이트 레벨 액세스"는별로 운이 없었습니다. ( – sepiroth

+1

@ hatorade (hater + gatorade?) : 나는 C#을 직접 다루었으며 파이썬에 대한 압축을 알고 있지만, 파이썬이 필요한 것을 할 수 있다고 확신합니다. 기본적으로 파일을 IO (파이썬에서 무엇이든)로 열고 바이트 배열로 읽은 다음 파일을 조작하여 다시 파일로 저장합니다. 원래 파일 형식과 출력을 모두 알아야합니다 형식 (TIFF)을 얻을 수 있습니다. – MusiGenesis

3

나는 도구를 사용하고 GraphicsMagic 또는 ImageMagick에 바인딩을 사용합니다.

+1

@lutz :이 중 하나를 사용하여 사용자 정의 이미지 파일 형식을 다른 형식으로 변환 할 수 있습니까? 같은, 그들은 사용자 정의 이미지 파일 변환을 기반으로 사용자 정의 코드를 작성하는 방법을 제공합니까? – sepiroth

0

당신이하고있는 모든 일이 파일 형식을 변경하는 것이라면, ImageMagick은 당신을 잘 할 것입니다. Python을 사용하면 간단한 ImageMagick 호출을 간단한 GUI로 래핑 할 수 있으며 나중에 더 많은 작업을 수행하려는 경우 Python Imaging Library에 폴백 할 수있는 옵션이 포함 된 완전한 프로그래밍 언어를 제공합니다.

관련 문제