O último passo do badapple é converter a imagem em preto e branco em uma imagem de caractere e, em seguida, produzi-la.


de
PIL import Image import os char_s = list ( " ., - '` :! 1 + * abcdefghijklmnopqrstuvwxyz <> () \ / {} []? 234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ% & @ # $ " ) # Este é o tom da cor, ajustei o espaço em branco para mover, Quanto mais escura a imagem original, mais esparsa
# A próxima função é mapear pixels para o código Astor def get_char (r, g, b, alpha = 256 ): se alpha == 0: return ' ' # Converta o comprimento do conjunto de caracteres para preparar = comprimento do len (char_s) # converter o valor de pixel numa valores de gradação RGB cinzento = int (P & lt 0,2126 * 0,7152 * L + 0,0722 * + B) # é calculado para cada carácter correspondente à largura do valor cinzento intervalo # porque cada componente RGB é tomada Os valores estão todos entre 0 e 255, portanto, o valor máximo do valor cinza é 256. Se a unidade de largura menor do que o valor calculado do intervalo normal 256, # vai corresponder ao carácter do conjunto de caracteres correspondente ao IDX quando não, ocorrer um erro unit = (256.0 + 1) / length # O valor cinza corresponde à posição (valor do índice) em char_s. Observe que [] idx = int (cinza / unidade) retorna char_s [idx]
def gettxt (caminho de foto, caminho de salvamento): lista de arquivos = os.listdir (photo_path) filelist.sort (key = lambda x: int (x [: -4 ])) # Isso é muito importante, porque, por padrão, é aberto em ordem lexicográfica, classificado pelo tipo int, exceto o sufixo. show_heigth = 30 # Tamanho do texto impresso show_width = 90 num = int (0) para o item na lista de arquivos: num + = 1 print ( ' converter para% d folhas ' % num) item = caminho_da_imagem + item rgb_im = Image.open (item) txt_name = save_path + str (num) + ' .txt ' newfil = aberto (txt_name, ' w ' ) im = rgb_im.convert ( ' RGB ' ) im = redimensionar ((largura_de_ mostrar, largura_de_ mostrar), Image.NEAREST) text = "" para i no intervalo (show_heigth): para j no intervalo (show_width): texto + = get_char (* im.getpixel ((j, i))) texto + = ' \ n ' newfil.write (texto) # newfil.close () def main (): read_path = ' E: \\ tente a maçã \\ 1ª \\ ' save_path = ' E: \\ tente a maçã \\ 2ª \\ '
 # Isso é muito simples, digite o local da imagem diretamente e o local para salvar. gettxt (caminho de leitura, caminho de salvamento) se __name__ == ' __main__ ' : a Principal()

 

 

Então a saída fará:

importação OS
 importação tempo
 de importação de threading
 de PlaySound importação PlaySound

def getmove (caminho_da foto):
    lista de arquivos = os.listdir (photo_path)
    filelist.sort (chave = lambda x: int (x [: - 4 ]))
     para o item na lista de arquivos:
        time.sleep ( 0.02 ) # Não percebi que não sincronizei o som e a imagem diretamente após a conclusão.Eu preciso ajustá-lo um pouco e usar pr.
        # os.system ("cls") # Se você tiver essa velocidade, ela ficará mais lenta. Tente você mesmo. 
        filename = photo_path + item
        fil = open (nome do arquivo, ' r ' )
         print (fil.read ())
        fil.close ()


def play_audio (music_path):
    playsound (music_path)


def main ():
    read_path = ' E: \\ experimente maçã \\ 2º \\ '
    getmove (caminho de leitura)
 
 # Muito abaixo está o meu código multithread para tocar música.Eu uso o playsound.Eu posso fazer o que quiser, mas a música e a imagem não são sincronizadas, por isso sou inútil. mesmo
= [] music_path = ' app.mp3 ' # same.append (threading.Thread (alvo = getmove, args = (read_path,))) # same.append (threading.Thread (alvo = PLAY_AUDIO, args = (music_path,))) # para i na mesma: # # i.setDaemon (True) # i.start () # play_audio (music_path) # while True: # pass se __name__ == ' __main__ ' : a Principal()

No começo, eu não sabia o que fazer, procurei um por um por alguns dias.

Acho que você gosta

Origin www.cnblogs.com/philo-zhou/p/12721110.html
Recomendado
Clasificación