필로우 2.4.0이 설치되어 있습니다 (OS X 및 Ubuntu 14.04 EC2의 가상 환경 모두). 파형의 시각화를 생성하기 위해 다음 스크립트를 작성했습니다 (drawing some inspiration from Jiaaro). Pydub 라이브러리를 사용하여 파형을 분석하고 PIL/Pillow의 ImageDraw 기능을 사용하여 선을 그립니다. WAV 변수합니다 (Pydub 라이브러리)을 audiosegment()는, imgname은 문자열입니다PIL/베일 반전 투명도가 겉보기 임의로
def draw_waveform(wav, imgname, color="#000000", w=400, h=40):
sound = wav
name = imgname
width = w
height = h
color = color
chunk_length = len(sound)/width
loudness_of_chunks = [
sound[ i*chunk_length : (i+1)*chunk_length ].rms
for i in range(width)]
max_rms = max(loudness_of_chunks)
scale = max_rms/(height/2)
size = (width,height)
im = Image.new('RGBA', size, (255, 255, 255, 255))
draw = ImageDraw.Draw(im)
for i in range(1, width):
pos = (width - i, height/2 + loudness_of_chunks[i]/scale-4)
draw.line((width - i,height/2) + pos, fill=color)
pos = (width - i, height/2 - loudness_of_chunks[i]/scale+4)
draw.line((width - i,height/2) + pos, fill=color)
del draw
im.rotate(180).save(app.config['UPLOAD_FOLDER'] + '/' + name, 'GIF', transparency=0) #, transparency=0
return app.config['UPLOAD_FOLDER'] + '/' + name
모두의 그루비, 대부분의 시간. 일부 파형의 경우, 특히 피크에 가까운 PIL은 투명도를 뒤집은 GIF를 출력합니다. 파형은 투명 해지고 주변의 공간은 흰색이됩니다. 일반적으로 배경은 투명하고 파형은 검은 색 (# 000000)입니다. 여기
가 예상되는 출력의 사진입니다 :그리고 잘못된 (오른쪽 저장-로 열린 이미지 편집기에서, 그 배경이 흰색이며 가운데가 투명으로 클릭) :
는 사람이 비슷한 문제를 경험 한 적이 있습니까? 명백한 것 (아마도)을 놓치고 있습니까?
''RGBA ''대신''P'' 이미지 형식을 사용하고''save''에 투명한 색인을 설정해보십시오. . http://pillow.readthedocs.org/en/latest/handbook/image-file-formats.html#gif –
쉬운 해킹 : 완전히 검은 색 레이어를 만들고 그 위에 현재 출력을 오버레이 할 수 있습니다. 그래도 그 질문에 대한 답은 모르겠다.) – Jiaaro
@Jiaaro - 불행히도 내가 보여주고있는 테이블에 투명성이 필요하다. 우연히, 당신의 훌륭한 라이브러리 (24 비트 지원을 추가하면 많은 선물을 보내 드리겠습니다;)) – lyell