Browse Source

premier commit

master
rep 6 years ago
commit
82adff411e
11 changed files with 373 additions and 0 deletions
  1. +1
    -0
      .gitignore
  2. +17
    -0
      HH_.py
  3. BIN
      HH_.tar.gz
  4. +8
    -0
      HH_1.sh
  5. +23
    -0
      HH_2.sh
  6. +0
    -0
      README.md
  7. +34
    -0
      enscribe_.sh
  8. +51
    -0
      gris1.py
  9. +170
    -0
      hacheuur.py
  10. +69
    -0
      horizontal.simple.py
  11. BIN
      test.jpg2015-09-29-21h22m05s.jpg

+ 1
- 0
.gitignore View File

@ -0,0 +1 @@
pylone3

+ 17
- 0
HH_.py View File

@ -0,0 +1,17 @@
(a) chargement_IMAGE
(1) mise à l échelle
(2) passage à 1 bit (noir|blanc)
(3) si nécessaire, conversion de format en non compressé (raw)
(b) haacheuurr
(1) plusieurs mode pour les traites de coupes :
- tout le tour
- juste les bords droit/gauche (plus épais si sample plus grand ?)
- aucun contour
- couleur blanche|noire
(c) horizontal_IMAGE
(1) largeur Image (en pixels) / FPS = temps de diffusion
(d) horizontal_AUDIO
(1) calcul de la FTT inverse en fonction de la hauteur de l image

BIN
HH_.tar.gz View File


+ 8
- 0
HH_1.sh View File

@ -0,0 +1,8 @@
# ------------- FILE INFO OUTPUT
echo $1
# ------------- RESIZE IMAGE (512, 1024, 2048, 4096 pixels de haut)
#convert $1 -resize 768x512 $1.768x512
# ------------- HACHAGE
python ./hacheuur.py $1

+ 23
- 0
HH_2.sh View File

@ -0,0 +1,23 @@
# ------------- FILE INFO OUTPUT
echo $1
# ------------- ROTATE IMAGE 90 DEGRES SENS HORAIRE
convert -rotate 90 $1 $1.rotate
# ------------- ENSCRIBE
# 1536 pixels / 25 fps = 61 secondes (durée fichier audio)
# enscribe -ts=1 -hf=20 -mask /usr/local/share/horizontal/sounds/piano-major7.flac -length=61.0 _MG_8817.out.2colors.tiff _MG_8817.out.2colors.tiff.wav
#enscribe -ts=0 -length=30.72 $1.rotate $1.enscribe.wav
enscribe -ts=0 -length=82 -hf=40 $1.rotate $1.enscribe.wav
# ------------- NORMALIZE AUDIO
sox --norm $1.enscribe.wav $1.enscribe.norm.wav
echo '-- END NORM --'
# ------------- HORIZONTAL
python ./horizontal.simple.py $1
#NETTOYAGE
rm $1.rotate
rm $1.enscribe.wav

+ 0
- 0
README.md View File


+ 34
- 0
enscribe_.sh View File

@ -0,0 +1,34 @@
# ------------- FILE INFO OUTPUT
file = $1
echo 'file : '+file
# ------------- RESIZE IMAGE (512, 1024, 2048, 4096 pixels de haut)
# donc de 5184*3456 pix à 1536*1024 pix par exemple
#convert $image_input -resize 768x512 $image_output_resize
# ------------- HACHAGE
#python ~/Projets/haacheur/hacheuur.py $image_output_resize
# ------------- HORIZONTAL
# ------------- ROTATE IMAGE 90 DEGRES SENS HORAIRE
#convert -rotate 90 $image_input $image_output
# ------------- ENSCRIBE
# 1536 pixels / 25 fps = 61 secondes (durée fichier audio)
# enscribe -ts 1024 -hf 20 -o output.wav input.wav -mask /usr/local/share/horizontal/sounds/piano_7.flac -lenght $tailleImage/$fps
# enscribe -ts=1 -hf=20 -mask /usr/local/share/horizontal/sounds/piano-major7.flac -length=61.0 _MG_8817.out.2colors.tiff _MG_8817.out.2colors.tiff.wav
# enscribe retenu : sans mask, avec du hissing : -h, largeur image : 1024 -ts=1, sur une png 2 couleurs
#enscribe -ts=0 -length=30.72 image_input.jpg sound_output.enscribe.wav
#enscribe -ts=1 -h -length=61.0 -mask /usr/local/share/horizontal/sounds/alto-majormode.flac _MG_8817.out.2colors.png _MG_8817.out.2colors.png.61s.alto-majormode.wav
# ------------- NORMALIZE ENSCRIBE AUDIO OUTPUT
# normaliser l'audio, histoire d'avoir une amplitude (volume) optimale
#sox --norm sound_output.enscribe.wav sound_output.wav

+ 51
- 0
gris1.py View File

@ -0,0 +1,51 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import Image
import random
import os
import ImageDraw
import ImageFont
import ImageFilter
from time import gmtime, strftime
# modifs du 30/10/2013
import ImageEnhance
im1 = Image.open(str(sys.argv[1]))
im1 = im1.convert('RGB')
# BLUR
'''for i in range(40):
im1 = im1.filter(ImageFilter.BLUR)
'''
#operation 'degoulinage', pixel par pixel
imagesource = im1
imagedest = im1
for i in range (60000) :
posrandX = random.randint(1, imagesource.size[0]-1)
posrandY = random.randint(1, imagesource.size[1]-55)
pixelRGB = imagesource.getpixel((posrandX,posrandY))
for Y in range (1, 49) :
imagedest.putpixel((posrandX, posrandY + random.randint(1,Y)+5), pixelRGB)
imagedest.save("test.jpg"+strftime("%Y-%m-%d-%Hh%Mm%Ss", gmtime())+".jpg",quality=100)
'''
#collage de l'image résultante dans une image 1bit
im4 = Image.new("1", (im1.size[0], im1.size[1]))
im4.paste(im1, (0, 0, im1.size[0], im1.size[1]))
# CTRL + S
im4.save("griis-out-"+strftime("%Y-%m-%d-%Hh%Mm%Ss", gmtime())+".jpg",quality=100)
'''
#COPIER/COLLAGE SIMPLE ET EFFICACE :
'''
box = (30, 30, 110, 110)
sample = image.crop(box)
for i in range(10): # with the BLUR filter, you can blur a few times to get the effect you're seeking
sample = sample.filter(ImageFilter.BLUR)
image.paste(sample, box)
'''

+ 170
- 0
hacheuur.py View File

@ -0,0 +1,170 @@
#!/usr/bin/python
# coding: utf-8
# haacheuur 0.24
# port industriel de port la nouvelle - couleur - 60cm*30cm
# image source : pln.jpg
# image rendue : pln..20150910-11h59m53s.jpg
import sys
import Image
import random
import os
import ImageDraw
import ImageFont
import ImageFilter
from time import gmtime, strftime
import time
# modifs du 30/10/2013
import ImageEnhance
#ouvertrure de l'image source et conversion en mode 1bit
im1 = Image.open(str(sys.argv[1])).convert('1')
#im1 = Image.open(str(sys.argv[1]))
im2 = im1.copy()
#im3 = Image.new("1", (im1.size[0], im1.size[1]))
#im4 = Image.new("1", (im1.size[0]*3, im1.size[1]))
#rapport d'allongement de la nouvelle image par rapport à la largeur de l'image originale
allongement = 1
im3 = Image.new("RGBA",(im1.size[0], im1.size[1]))
im4 = Image.new("RGBA",(im1.size[0]*allongement, im1.size[1]))
Larg = im1.size[0]
Haut = im1.size[1]
for i in range(10):
# nombre aleatoire compris dans les limites de l'image
def randHaut(): return random.randint(0, im1.size[1])
# constitution de la liste des tranches horizontales
# genre comme si qu'on avait un 16 pistes :)
randomCoupeHauteur = [0, \
randHaut(),randHaut(),randHaut(),randHaut(),randHaut(), \
randHaut(),randHaut(),randHaut(),randHaut(),randHaut(), \
randHaut(),randHaut(),randHaut(),randHaut(),randHaut(), \
randHaut(),randHaut(),randHaut(),randHaut(),randHaut(), \
randHaut(),randHaut(),randHaut(),randHaut(),randHaut(), \
im1.size[1]]
# rangement des valeurs des plus petites au plus grandes
randomCoupeHauteur.sort()
# DEBUG
liste = []
# les hachures
def Hacheur(haut, bas) :
n=0
while n<im4.size[0] :
# constitution d'une liste de dimensions et de repetitions
#dimen FAAAAT
#randomListe = [(10240,1),(5120,1),(2560,1),(1280,2),(640,4),(320,8),(320,3),(160,12),(160,6),(120,8),(80,24),(40,16),(20,32),(20,16),(10,32),(10,16),(5,64)]
#dimen FUZITU
#PLN back
#randomListe = [(2560,1),(1280,2),(640,4),(320,8),(320,3),(160,12),(160,6),(120,8),(80,24),(40,16),(20,24),(20,16),(10,32),(10,16),(5,64),(2,64),(1,64),(1,16)]
#PLN recursif sept 2015
#randomListe = [(2560,1),(1280,2),(640,4),(320,8),(320,3),(160,12),(160,6),(120,8),(80,24),(40,16),(20,24),(20,16),(10,32),(10,16),(5,64)]
#randomListe = [(5120,1),(2560,1),(1280,2),(640,4),(320,8),(320,3),(160,12),(160,6),(120,8),(80,24),(40,16),(10,32),(5,64),(3,24)]
# test HH_
randomListe = [(1280,2),(640,4),(320,5),(240,4),(160,6),(120,4),(120,8),(80,16),(60,16),(20,32),(8,24),(8,16),(5,64),(3,24),(2,24),(1,128),(1,64),(1,6)]
#dimen BLOG CUMULONIMBUS
#randomListe = [(320,8),(320,3),(160,12),(160,6),(120,8),(80,24),(40,16),(20,32),(20,16),(10,32),(10,16),(5,64)]
# repeter ce qui suit 2 ou 3 fois pour realiser non pas
# un sample, mais carrement ue sequence
# 8>< ------------------------------------------------------------------
# tirage au sort
#randomFacteur = random.randint(0, len(randomListe)*3)
choix = 0
# DEBUG
#print len(randomListe)*3
# ponderation du tirage au sort
randomFacteur = random.randint(0, len(randomListe)-1)
# DEBUG
#liste.append(choix)
# assignation des valeurs (paires) finales choisies
randomCopyLargFinal = randomListe[randomFacteur][0]
repeat = randomListe[randomFacteur][1]
# positionnement de la copie, aleatoirement, entre 0 et la largeur totale de l'image
randomCopyPosi = random.randint(0, (im1.size[0]-randomCopyLargFinal))
cx1 = randomCopyPosi
cx2 = randomCopyPosi + randomCopyLargFinal
# decoupage du sample
im3 = im2.crop((cx1,haut,cx2,bas))
# 8>< ------------------------------------------------------------------
draw = ImageDraw.Draw(im4)
loop = 0
#collage, n fois, du sample
while loop<repeat:
px1 = n
px2 = n + randomCopyLargFinal
draw = ImageDraw.Draw(im3)
#lignes noires 1px autour
#draw.line((0, 0, im3.size[0]-1, 0), fill="rgb(255,255,255)")
draw.line((im3.size[0]-1, 0, im3.size[0]-1, im3.size[1]-1), fill="rgb(255,255,255)")
im4.paste(im3, (px1, haut, px2, bas))
n = n + randomCopyLargFinal
loop = loop + 1
# les tranches horizontales intactes soulignees de blanc
def TrancheHorizontale() :
# tirage au hasard de la bande copiee
pos = random.randint(0, im1.size[1]-im1.size[1]/20)
# copiage
im5 = im2.crop((0,pos,im1.size[0],pos+im1.size[1]/20))
# le soulignage en blanc
draw = ImageDraw.Draw(im5)
draw.line((0, im5.size[1]-1, im5.size[0], im5.size[1]-1), fill="black")
draw.line((0, 1, im5.size[0], 1), fill="black")
# collage
im4.paste(im5, (0,pos,im1.size[0],pos+im1.size[1]/20))
# HAACHEUUR
for j in range(len(randomCoupeHauteur)-1):
Hacheur(randomCoupeHauteur[j], randomCoupeHauteur[j+1])
# DEBUG
#print liste
#print sorted(set(liste),key=liste.count)
# CTRL + S
#chemin du script
#scriptpy = sys.argv[0]
#chemin de l'image : str(sys.argv[1])
scriptpy = str(sys.argv[1])
script = scriptpy[:-3]
n = "%05d" % i
im4.save(script+"."+n+"_"+strftime("%Y%m%d-%Hh%Mm%Ss", gmtime())+".png",'PNG', quality=100)
#print script+"."+str(i)+"_"+strftime("%Y%m%d-%Hh%Mm%Ss", gmtime())+".jpg"
#millis = int(round(time.time() * 1000))
#print "millis-secondes : "+str(millis)

+ 69
- 0
horizontal.simple.py View File

@ -0,0 +1,69 @@
#!/usr/bin/python
import os, sys, Image, ImageDraw, ImageColor
from time import gmtime, strftime
fichier=sys.argv[1]
try:
#Image.open(fichier).save(outfile)
im1 = Image.open(fichier).convert('1')
im2 = im1.copy()
im3 = im1.copy()
draw = ImageDraw.Draw(im2)
except IOError:
print "FICHIER!!!", infile
date = strftime("%Y%m%d-%Hh%Mm%Ss", gmtime())
x=0
while x < im1.size[0] :
y = 0
while y < im1.size[1] :
colorpixel = im1.getpixel((x,y))
draw.line( (0, y, im2.size[0], y) , fill=colorpixel)
draw.line((x, 0, x, im2.size[1]-1), fill=1)
y = y + 1
#draw = ImageDraw.Draw(im2)
#lignes noires 1px autour
#draw.line((0, 0, im3.size[0]-1, 0), fill="rgb(255,255,255)")
#draw.line((x, 0, x, im2.size[1]-1), fill="rgb(255,0,0)")
#------------------------------------------
# ALPHA tout bete :
im3 = Image.blend(im1, im2, 0.8)
# COMPOSITING :
# im3 = Image.composite(im1, im2, mask)
#im3 = Image.composite(im1, im2, im1)
#------------------------------------------
n = "%05d" % x
nomdefichier = "horizontal"+n+".png"
im3.save(nomdefichier, "PNG")
print nomdefichier
x = x + 1
#im4.save(script+"."+strftime('%Y%m%d-%Hh%Mm%Ss', gmtime())+".jpg",'JPEG', quality=100)
del draw
#os.system("ffmpeg -i horizontal%d.png -vcodec mjpeg -q:v 0 "+fichier+".avi")
os.system("ffmpeg -i horizontal%05d.png -i "+fichier+".enscribe.norm.wav -c:a libfaac -c:v libx264 -preset ultrafast -crf 32 "+fichier+".final.mp4")
print " OUTPUT FINAL : "+fichier+".final.mp4"
#os.system("rm horizontal*.png")
# ALPHA :
# out = image1 * (1.0 - alpha) + image2 * alpha

BIN
test.jpg2015-09-29-21h22m05s.jpg View File

Before After
Width: 1536  |  Height: 1024  |  Size: 2.0 MiB

Loading…
Cancel
Save