문제

각 평면 (색상)이 별도의 파일에 저장된 방식으로 저장된 TIFF 이미지가 있습니다.각 파일 (C, M, Y, k)은 픽셀 파일 당 단색 8 비트로 저장된 chunky tiff입니다.

Python 이미징 라이브러리 (PIL)

을 사용 하여이 4 개의 파일을 하나의 CMYK 컬러 TIFF로 결합하고 싶습니다.

지금까지 내가 가진 코드이지만 생성 된 출력 TIFF가 올바르지 않아 TIFF가 주로 블랙의 파일로 결합되고 있습니다.다른 유틸리티와 함께이 파일을 병합했으며 결과가 올바른지 확인하므로 입력 파일에 문제가 있음을 알고 있습니다.

이것은 내가 지금까지 가지고있는 코드입니다.

if len(sys.argv) <= 1:
    print "ERROR: Usage !"
    exit(1)

try:
    cFile = str(sys.argv[1])+"Cyan.tif"
    mFile = str(sys.argv[1])+"Magenta.tif"
    yFile = str(sys.argv[1])+"Yellow.tif"
    kFile = str(sys.argv[1])+"Black.tif"

    print "Opening files:"
    print cFile
    print mFile
    print yFile
    print kFile

    c_img = Image.open(cFile)
    c_img = c_img.convert("L")

    m_img = Image.open(mFile)
    m_img = m_img.convert("L")

    y_img = Image.open(yFile)
    y_img = y_img.convert("L")

    k_img = Image.open(kFile)
    k_img = k_img.convert("L")

except Exception, e:
    print "ERROR: Unable to open file..."
    print str(e)
    exit(1)
try:
    mergedRaster = Image.merge('CMYK', (c_img, m_img, y_img, k_img))
    mergedRaster = mergedRaster.convert("CMYK")

except Exception, e:
    print "ERROR: Merging plates"
    print str(e)
    exit(0)
#exit(0)
try:
    mergedRaster.save("output.tif", format="TIFF")

except Exception, e:
    print "ERROR: Writing tiff"
.

참고 : Convert 함수 중 하나없이 동일하게 수행했으며 결과가 동일한 것으로 나타났습니다.

도움이 되었습니까?

해결책

솔루션이 반전되어야하는 데 필요한 모든 값이 I.E..E.E.E.E..E.E..e..e...e..e...e.

각 파일을 숫자 배열로 변환 한 다음 255에서 빼냅니다. \

try:
    cArray = numpy.array(c_img)
    mArray = numpy.array(m_img)
    yArray = numpy.array(y_img)
    kArray = numpy.array(k_img)
except Exception, e:
    print "ERROR: Converting to numpy array..."
    print str(e)
    exit(1)

try:
    toSub = 255
    cInvArray = toSub - cArray
    mInvArray = toSub - mArray
    yInvArray = toSub - yArray
    kInvArray = toSub - kArray

except Exception, e:
    print "ERROR: inverting !"
    print str(e)

try:
    cPlate = Image.fromarray(cInvArray)
    mPlate = Image.fromarray(mInvArray)
    yPlate = Image.fromarray(yInvArray)
    kPlate = Image.fromarray(kInvArray)

except Exception, e:
    print "ERROR: Creating image from numpy arrays"
    print str(e)
    exit(1)

try:
    mergedRaster = Image.merge('CMYK', (cPlate, mPlate, yPlate, kPlate))
.

왜 이것이 필요했는지 모르겠지만, 누군가가 그대로 설명 할 수 있다면

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top