autogrid,autogridrip
This commit is contained in:
parent
46574fc422
commit
dfec860349
530
dr1p1m4g3_dev.py
530
dr1p1m4g3_dev.py
@ -1,24 +1,79 @@
|
|||||||
|
###########################################################################################################################################
|
||||||
|
###################### /*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::. ##########################
|
||||||
|
#################### /mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNd- ########################
|
||||||
|
################### -MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN` #######################
|
||||||
|
################### /MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM- #######################
|
||||||
|
################### /MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmNMMMMMMMMMMMmMMMMMMMMMMMMMMMMMMMMMMMMMMMMM- #######################
|
||||||
|
################### /MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMh:NMMMMMMMMMMoyMMMMMMMMMMMMMMMMMMMMMMMMMMMM- #######################
|
||||||
|
################### /MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMm -NMMMMMMMMMs.NMMMMMMMMMMMMMMMMMMMMMMMMMMM- #######################
|
||||||
|
################### /MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMy -hmmmmmNNm- sMMMMMMMMMMMMMMMMMMMMMMMMMMM- #######################
|
||||||
|
################### /MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmdyo+:` ```````.` .NMMMymMMMMMMMMMMMMMMMMMMMMM- #######################
|
||||||
|
################### /MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmy+-.` -hNm-+MMMMMMMMMMMMMMMMMMMMM- #######################
|
||||||
|
################### /MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMms:` `.. /MMMMMMMMMMMMMMMMMMMMM- #######################
|
||||||
|
################### /MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMh/. /MMMMMMMMMMMMMMMMMMMMM- #######################
|
||||||
|
################### /MMMMMMMMMMMMMMMMMMMmMMMMMMMMMMMmhN:` /MMMMMMMMMMMMMMMMMMMMM- #######################
|
||||||
|
################### /MMMMMMMMMMMMMMMMMMM+sNMMMMMMMMMN-h: `-+syyys/- -NMMMMMMMMMMMMMMMMMMMM- #######################
|
||||||
|
################### /MMMMMMMMMMMMMMMMMMMs +NMMMMMMMhm--d` :. -sdNMMMMMNNmy. :ydMMMMMMMMMMMMMMMMMM- #######################
|
||||||
|
################### /MMMMMMMMMMMMMMMMMMM+ :yhyyyhhso` os yhshNMMMMMMMh+:-:. :s- .NMMMMMMMMMMMMMMMMM- #######################
|
||||||
|
################### /MMMMMMMMMMMMMMMMmho` ` `yo.h:sMMMMMMMMMMNd+. -NNs- yMMMMMMMMMMMMMMMMM- #######################
|
||||||
|
################### /MMMMMMMMMMMMMNh/. :++`-MMMMMMMMMMMMMm+` :ymds. -NMMMMMMMMMMMMMMMM- #######################
|
||||||
|
################### /MMMMMMMMMMMmo- .MMMMMMMMMMMMMMMdo. `.-` yMMMMMMMMMMMMMMMM- #######################
|
||||||
|
################### /MMMMMMMMMmo. `NMMMMMMMMMMMMMMMMNy/.` `mMMMMMMMMMMMMMMM- #######################
|
||||||
|
################### /MMMMMMMNs. hMMMMMMMMMMMMMMMMMMMNho-` :NMMMMMMMMMMMMMM- #######################
|
||||||
|
################### /MMMMMMm: ./syyyo- -hmNMMMMMMMMMMMMMMMMMMMMmho:.` /NMMMMMMMMMMMMM- #######################
|
||||||
|
################### /MMMMMd. .smMMMNNNms` ` `+MMMMMMMMMMMMMMMMMMMMMMMMNdy/ `.yMMMMMMMMMMMMM- #######################
|
||||||
|
################### /MMMMd. /mMMMMMy/:--` so. `mMMMMMMMMMMMMMMMMMMMMMMMNdo--:+sdNMMMMMMMMMMMMMM- #######################
|
||||||
|
################### /MMMN- /NMMMMMMMMdo. oMm+. /MMMMMMMMMMMMMMMMdNMMMMMMNNNMMmMMMMMMMMMMMMMMMMM- #######################
|
||||||
|
################### /MMMo -NMMMMMMMMMMdso-` /hmm+ sMMMMMMMMMMMMMMMs-mMMMMMMMMMM:dMMMMMMMMMMMMMMMM- #######################
|
||||||
|
################### /MMN. sMMMMMMMMMMMo .os/.``.. `dMMMMMMMMMMMMMMs -NMMMMMMMMM-:MMMMMMMMMMMMMMMM- #######################
|
||||||
|
################### /MMd mMMMMMMMMMMM/ `:os+-` .dMMMMMMMMMMMNm. -soosyhdms `mMMMMMMMMMMMMMMM- #######################
|
||||||
|
################### /MMs mMMMMMMMMMMM: .hNhs/.` .dMMMMNmhs+:-` +MMMNoMMMMMMMMMM- #######################
|
||||||
|
################### /MMy hMMMMMMMMMMM: oMMMMMNdyo/. .mNh+-` +mNy`mMMMMMMMMM- #######################
|
||||||
|
################### /MMd +MMMMMMMMMMM/ :MMMMMMMMNs.`.:ohh/` ` mMMMMMMMMM- #######################
|
||||||
|
################### /MMN. `mMMMMMMMMMMo `NMMMMMMNhhdNMMh: mMMMMMMMMM- #######################
|
||||||
|
################### /MMM+ /MMMMMMMMMMh yMMMMMMMMMMMN+ `NMMMMMMMMM- #######################
|
||||||
|
################### /MMMm` +MMMMMMMMMN` .NMMMMMMMMMN- :sdmNNNdy+` dMMMMMMMMM- #######################
|
||||||
|
################### /MMMMo +MMMMMMMMM+ +MMMMMMMMM/ -dMMMMMMNmmNN/ .sdMMMMMMM- #######################
|
||||||
|
################### /MMMMN: :mMMMMMMMm` oMMMMMMMh .mMMMMMMMms- `` /o` `mMMMMMM- #######################
|
||||||
|
################### /MMMMMm. .yMMMMMMMo oMMMMMM/ sMMMMMMMMMMMh: :NNo. sMMMMMM- #######################
|
||||||
|
################### /MMMMMMm. -hMMMMMN: /NMMMM. dMMMMMMMMMMMMMh- :hmNy` .NMMMMM- #######################
|
||||||
|
################### /MMMMMMMm- -yNMMMm. .yMMM. dMMMMMMMMMMMMMMNh:` `..` yMMMMM- #######################
|
||||||
|
################### /MMMMMMMMN+ .+hNMd. :hM: dMMMMMMMMMMMMMMMMNmo- .NMMMM- #######################
|
||||||
|
################### /MMMMMMMMMMh- ./ss. `:: sMMMMMMMMMMMMMMMMMMMNms/. /MMMM- #######################
|
||||||
|
################### /MMMMMMMMMMMNo. ` :MMMMMMMMMMMMMMMMMMMMMMMNdo:.` oMMM- #######################
|
||||||
|
################### /MMMMMMMMMMMMMmo. `mMMMMMMMMMMMMMMMMMMMMMMMMMMNmh: .dMM- #######################
|
||||||
|
################### /MMMMMMMMMMMMMMMNy:` +MMMMMMMMMMMMMMMMMMMMMMMMMMNh+::/+sdNMMM- #######################
|
||||||
|
################### /MMMMMMMMMMMMMMMMMNdo- `dMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNMMMMMMMM- #######################
|
||||||
|
################### /MMMMMMMMMMMMMMMMMMMMNd+-` -NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM- #######################
|
||||||
|
################### -NMMMMMMMMMMMMMMMMMMMMMMNdo:` /NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMd` #######################
|
||||||
|
#################### -ymNNNNNNNNNNNNNNNNNNNNNNNNdo-` +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNmy. ########################
|
||||||
|
###################### ............................ .-..............................*/ ##########################
|
||||||
|
####################### `````` ````````` `````````````` `````````` ````` #############################
|
||||||
|
########################################################################################################################################### imports
|
||||||
|
import curses
|
||||||
####################################################################################################################################### SOF
|
####################################################################################################################################### SOF
|
||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
import sys
|
import sys
|
||||||
from curses import (A_REVERSE, KEY_DOWN, KEY_ENTER, KEY_LEFT, KEY_RIGHT,
|
from curses import (A_REVERSE, KEY_DOWN, KEY_ENTER, KEY_LEFT, KEY_RIGHT,
|
||||||
KEY_UP, ascii, wrapper)
|
KEY_UP, ascii, wrapper)
|
||||||
import curses
|
|
||||||
from imghdr import what as is_file_an_image
|
from imghdr import what as is_file_an_image
|
||||||
from os import chdir, listdir, path
|
from os import chdir, listdir, path
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from random import randint, shuffle
|
from random import choice, randint, shuffle
|
||||||
from time import sleep
|
from time import sleep
|
||||||
from tkinter import *
|
from tkinter import *
|
||||||
from tkinter import filedialog, ttk, font
|
from tkinter import filedialog, font, ttk
|
||||||
from tkinter.filedialog import askopenfile
|
from tkinter.filedialog import askopenfile
|
||||||
|
|
||||||
from PIL import Image, ImageTk
|
|
||||||
|
|
||||||
###########################################################################################################################################
|
###########################################################################################################################################
|
||||||
|
from PIL import Image, ImageTk
|
||||||
|
from rich.color import ANSI_COLOR_NAMES
|
||||||
|
from rich.console import Console
|
||||||
|
########################################################################################################################################### globals
|
||||||
|
global STARTUP_DIRECTORY_OVERRIDE; STARTUP_DIRECTORY_OVERRIDE=['/Users/dr1p/dr1p1m4g3/grids']
|
||||||
|
########################################################################################################################################### class dr1p1m4g3
|
||||||
class DR1P1M4G3():
|
class DR1P1M4G3():
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### __init__ <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< __init__ class
|
||||||
def __init__(self,USERPATH=None,IMGINDEX=None,RENDMODE=None,PUMPMODE=None,PUMPTIME=None,USERSHUF=None):
|
def __init__(self,USERPATH=None,IMGINDEX=None,RENDMODE=None,PUMPMODE=None,PUMPTIME=None,USERSHUF=None):
|
||||||
#######################################################################################################################################
|
#######################################################################################################################################
|
||||||
if USERPATH:
|
if USERPATH:
|
||||||
@ -65,6 +120,8 @@ class DR1P1M4G3():
|
|||||||
self.USERSHUF=False
|
self.USERSHUF=False
|
||||||
self.USER_USERSHUF=False
|
self.USER_USERSHUF=False
|
||||||
#######################################################################################################################################
|
#######################################################################################################################################
|
||||||
|
self.LOGINIT=0
|
||||||
|
self.LOGFILE="dr1pt_pr0be.log"
|
||||||
self.REFRESH=0
|
self.REFRESH=0
|
||||||
self.RENDER_TEXT=True
|
self.RENDER_TEXT=True
|
||||||
self.LAST_DIRECTION=-1
|
self.LAST_DIRECTION=-1
|
||||||
@ -88,8 +145,39 @@ class DR1P1M4G3():
|
|||||||
self.NORMAL_TEXT_FONT=self.NORMAL_TEXT_FONTS[randint(0,len(self.NORMAL_TEXT_FONTS)-1)]
|
self.NORMAL_TEXT_FONT=self.NORMAL_TEXT_FONTS[randint(0,len(self.NORMAL_TEXT_FONTS)-1)]
|
||||||
self.NORMAL_TEXT_SIZE=25
|
self.NORMAL_TEXT_SIZE=25
|
||||||
self.AUTOCOLOR={'N':[0,0,0],'L':[['blue2','red2','purple2'],['midnight blue','navy blue'],['goldenrod1','goldenrod2','goldenrod3']]}
|
self.AUTOCOLOR={'N':[0,0,0],'L':[['blue2','red2','purple2'],['midnight blue','navy blue'],['goldenrod1','goldenrod2','goldenrod3']]}
|
||||||
|
self.FIRST_INDEX=False
|
||||||
|
self.AUTO_GRID=True
|
||||||
|
self.logfile='resolutions_database.txt'
|
||||||
|
self.colors=[]
|
||||||
|
self.basename=0
|
||||||
|
for _ in ANSI_COLOR_NAMES:
|
||||||
|
if _.lower().find('black') == -1:
|
||||||
|
self.colors.append(_)
|
||||||
|
###########
|
||||||
self.main()
|
self.main()
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### l0g
|
||||||
|
def l0g(self,s):
|
||||||
|
c=Console()
|
||||||
|
if not self.LOGINIT:
|
||||||
|
if path.isfile(self.LOGFILE): os.remove(self.LOGFILE)
|
||||||
|
f=open(self.LOGFILE,'w');f.write('');f.close();self.LOGINIT=1;
|
||||||
|
f=open(self.LOGFILE,'a');f.write(f'{s}\n');f.close();
|
||||||
|
_s=s.split()
|
||||||
|
s=''
|
||||||
|
FULL_COLOR=False # False for half-color, True for full-color
|
||||||
|
for _ in _s:
|
||||||
|
color=choice(self.colors)
|
||||||
|
msg=f'[{color}]{_}[/{color}]'
|
||||||
|
s+=f'{msg} '
|
||||||
|
c.print(s)
|
||||||
|
if FULL_COLOR:
|
||||||
|
_s=''
|
||||||
|
for _ in s:
|
||||||
|
color=choice(self.colors)
|
||||||
|
msg=f'[{color}]{_}[/{color}]'
|
||||||
|
_s+=f'{msg}'
|
||||||
|
c.print(_s)
|
||||||
|
######################################################################################################################################### randofontcolors
|
||||||
def randofontcolors(self,n):
|
def randofontcolors(self,n):
|
||||||
self.NORMAL_TEXT_COLOR=f'#{hex(randint(0,255))[2:].zfill(2)}{hex(randint(0,255))[2:].zfill(2)}{hex(randint(0,255))[2:].zfill(2)}'
|
self.NORMAL_TEXT_COLOR=f'#{hex(randint(0,255))[2:].zfill(2)}{hex(randint(0,255))[2:].zfill(2)}{hex(randint(0,255))[2:].zfill(2)}'
|
||||||
self.NORMAL_TEXT_FONTS=list(font.families())
|
self.NORMAL_TEXT_FONTS=list(font.families())
|
||||||
@ -102,7 +190,7 @@ class DR1P1M4G3():
|
|||||||
self.texting=self.canvas.create_text(self.root.winfo_screenwidth()/2, 85, text=Buffer,fill=self.NORMAL_TEXT_COLOR,justify='center',font=(self.NORMAL_TEXT_FONT, self.NORMAL_TEXT_SIZE))
|
self.texting=self.canvas.create_text(self.root.winfo_screenwidth()/2, 85, text=Buffer,fill=self.NORMAL_TEXT_COLOR,justify='center',font=(self.NORMAL_TEXT_FONT, self.NORMAL_TEXT_SIZE))
|
||||||
self.root.title(Buffer)
|
self.root.title(Buffer)
|
||||||
self.root.update()
|
self.root.update()
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### autocolor
|
||||||
def autocolor(self,n):
|
def autocolor(self,n):
|
||||||
try:
|
try:
|
||||||
self.AUTOCOLOR['N'][n]+=1
|
self.AUTOCOLOR['N'][n]+=1
|
||||||
@ -110,27 +198,27 @@ class DR1P1M4G3():
|
|||||||
return self.AUTOCOLOR['L'][n][self.AUTOCOLOR['N'][n]]
|
return self.AUTOCOLOR['L'][n][self.AUTOCOLOR['N'][n]]
|
||||||
except:
|
except:
|
||||||
return -1.666
|
return -1.666
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### fliptext
|
||||||
def fliptext(self,s):
|
def fliptext(self,s):
|
||||||
self.RENDER_TEXT=not self.RENDER_TEXT
|
self.RENDER_TEXT=not self.RENDER_TEXT
|
||||||
if self.RENDER_TEXT:
|
if self.RENDER_TEXT:
|
||||||
print(f"<<<<< text rendering enabled >>>>>")
|
self.l0g(f"<<<<< text rendering enabled >>>>>")
|
||||||
self.canvas.delete('all')
|
self.canvas.delete('all')
|
||||||
self.loadimage()
|
self.loadimage()
|
||||||
else:
|
else:
|
||||||
print(f"<<<<< text rendering disabled >>>>>")
|
self.l0g(f"<<<<< text rendering disabled >>>>>")
|
||||||
self.canvas.delete('all')
|
self.canvas.delete('all')
|
||||||
self.loadimage()
|
self.loadimage()
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### isave
|
||||||
def isave(self,s):
|
def isave(self,s):
|
||||||
if not self.MARKED:
|
if not self.MARKED:
|
||||||
if self.MARKED_FILES[self.IMAGE_INDEX]==1:
|
if self.MARKED_FILES[self.IMAGE_INDEX]==1:
|
||||||
print(f"<<<<< unmarking from save {self.IMAGE_LIST[self.IMAGE_INDEX]} >>>>>")
|
self.l0g(f"<<<<< unmarking from save {self.IMAGE_LIST[self.IMAGE_INDEX]} >>>>>")
|
||||||
self.MARKED_FILES[self.IMAGE_INDEX]=0
|
self.MARKED_FILES[self.IMAGE_INDEX]=0
|
||||||
self.loadimage()
|
self.loadimage()
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
print(f"<<<<< marked to save {self.IMAGE_LIST[self.IMAGE_INDEX]} >>>>>")
|
self.l0g(f"<<<<< marked to save {self.IMAGE_LIST[self.IMAGE_INDEX]} >>>>>")
|
||||||
self.MARKED_FILES[self.IMAGE_INDEX]=1
|
self.MARKED_FILES[self.IMAGE_INDEX]=1
|
||||||
if self.LAST_DIRECTION:
|
if self.LAST_DIRECTION:
|
||||||
self.right(self)
|
self.right(self)
|
||||||
@ -142,21 +230,22 @@ class DR1P1M4G3():
|
|||||||
if not os.path.exists(self.ISAVE_DIRECTORY[self.IMAGE_DIR_INDEX[SIN]]):
|
if not os.path.exists(self.ISAVE_DIRECTORY[self.IMAGE_DIR_INDEX[SIN]]):
|
||||||
os.mkdir(self.ISAVE_DIRECTORY[self.IMAGE_DIR_INDEX[SIN]])
|
os.mkdir(self.ISAVE_DIRECTORY[self.IMAGE_DIR_INDEX[SIN]])
|
||||||
shutil.move(self.IMAGE_LIST[SIN],self.ISAVE_DIRECTORY[self.IMAGE_DIR_INDEX[SIN]])
|
shutil.move(self.IMAGE_LIST[SIN],self.ISAVE_DIRECTORY[self.IMAGE_DIR_INDEX[SIN]])
|
||||||
print(f"<<<<< moved {self.IMAGE_LIST[SIN]} to {self.ISAVE_DIRECTORY[self.IMAGE_DIR_INDEX[SIN]]} >>>>>")
|
self.l0g(f"<<<<< moved {self.IMAGE_LIST[SIN]} to {self.ISAVE_DIRECTORY[self.IMAGE_DIR_INDEX[SIN]]} >>>>>")
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### idrop
|
||||||
def idrop(self,s):
|
def idrop(self,s):
|
||||||
if not self.MARKED:
|
if not self.MARKED:
|
||||||
if self.MARKED_FILES[self.IMAGE_INDEX]==-1:
|
if self.MARKED_FILES[self.IMAGE_INDEX]==-1:
|
||||||
print(f"<<<<< unmarking from drop {self.IMAGE_LIST[self.IMAGE_INDEX]} >>>>>")
|
self.l0g(f"<<<<< unmarking from drop {self.IMAGE_LIST[self.IMAGE_INDEX]} >>>>>")
|
||||||
self.MARKED_FILES[self.IMAGE_INDEX]=0
|
self.MARKED_FILES[self.IMAGE_INDEX]=0
|
||||||
self.loadimage()
|
self.loadimage()
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
print(f"<<<<< marked to drop {self.IMAGE_LIST[self.IMAGE_INDEX]} >>>>>")
|
self.l0g(f"<<<<< marked to drop {self.IMAGE_LIST[self.IMAGE_INDEX]} >>>>>")
|
||||||
self.MARKED_FILES[self.IMAGE_INDEX]=-1
|
self.MARKED_FILES[self.IMAGE_INDEX]=-1
|
||||||
if self.LAST_DIRECTION:
|
if self.LAST_DIRECTION:
|
||||||
self.right(self)
|
self.right(self)
|
||||||
else:
|
else:
|
||||||
|
|
||||||
self.left(self)
|
self.left(self)
|
||||||
else:
|
else:
|
||||||
for DIN,VAL in enumerate(self.MARKED_FILES):
|
for DIN,VAL in enumerate(self.MARKED_FILES):
|
||||||
@ -164,23 +253,23 @@ class DR1P1M4G3():
|
|||||||
if not os.path.exists(self.IDROP_DIRECTORY[self.IMAGE_DIR_INDEX[DIN]]):
|
if not os.path.exists(self.IDROP_DIRECTORY[self.IMAGE_DIR_INDEX[DIN]]):
|
||||||
os.mkdir(self.IDROP_DIRECTORY[self.IMAGE_DIR_INDEX[DIN]])
|
os.mkdir(self.IDROP_DIRECTORY[self.IMAGE_DIR_INDEX[DIN]])
|
||||||
shutil.move(self.IMAGE_LIST[DIN],self.IDROP_DIRECTORY[self.IMAGE_DIR_INDEX[DIN]])
|
shutil.move(self.IMAGE_LIST[DIN],self.IDROP_DIRECTORY[self.IMAGE_DIR_INDEX[DIN]])
|
||||||
print(f"<<<<< moved {self.IMAGE_LIST[DIN]} to {self.IDROP_DIRECTORY[self.IMAGE_DIR_INDEX[DIN]]} >>>>>")
|
self.l0g(f"<<<<< moved {self.IMAGE_LIST[DIN]} to {self.IDROP_DIRECTORY[self.IMAGE_DIR_INDEX[DIN]]} >>>>>")
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### shuffling
|
||||||
def shuffling(self,s):
|
def shuffling(self,s):
|
||||||
self.USER_USERSHUF=not self.USER_USERSHUF
|
self.USER_USERSHUF=not self.USER_USERSHUF
|
||||||
if self.USER_USERSHUF:
|
if self.USER_USERSHUF:
|
||||||
self.getfilelist()
|
self.getfilelist()
|
||||||
self.loadimage()
|
self.loadimage()
|
||||||
print(f"<<<<< image shuffling enabled >>>>>")
|
self.l0g(f"<<<<< image shuffling enabled >>>>>")
|
||||||
else:
|
else:
|
||||||
print(f"<<<<< image shuffling disabled >>>>>")
|
self.l0g(f"<<<<< image shuffling disabled >>>>>")
|
||||||
########################################################################################################################################
|
######################################################################################################################################### escaped
|
||||||
def escaped(self,s):
|
def escaped(self,s):
|
||||||
self.root.destroy()
|
self.root.destroy()
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### markedlist
|
||||||
def markedlist(self,s):
|
def markedlist(self,s):
|
||||||
print(f"<<<<< batch processing marked list >>>>>")
|
self.l0g(f"<<<<< batch processing marked list >>>>>")
|
||||||
self.MARKED=True
|
self.MARKED=True
|
||||||
self.isave(self)
|
self.isave(self)
|
||||||
self.idrop(self)
|
self.idrop(self)
|
||||||
@ -190,7 +279,109 @@ class DR1P1M4G3():
|
|||||||
self.right(self)
|
self.right(self)
|
||||||
else:
|
else:
|
||||||
self.left(self)
|
self.left(self)
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### autogrid <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< autogrid
|
||||||
|
def ripgrid(self,s):
|
||||||
|
self.l0g(f'<<< ripgrid >>>')
|
||||||
|
try:
|
||||||
|
icount=0
|
||||||
|
for __y in range(self.GY):
|
||||||
|
for __x in range(self.GX):
|
||||||
|
self.xy[0]=__x; self.xy[1]=__y; self.movecell()
|
||||||
|
self.image_gridcell.save(f'ripgrid_{str(self.basename).zfill(8)}_{str(icount).zfill(4)}_.png')
|
||||||
|
icount+=1
|
||||||
|
######################
|
||||||
|
self.basename+=1
|
||||||
|
self.GRID(self)
|
||||||
|
self.AUTO_GRID=True
|
||||||
|
if self.LAST_DIRECTION:
|
||||||
|
self.right(self)
|
||||||
|
else:
|
||||||
|
self.left(self)
|
||||||
|
except:
|
||||||
|
self.l0g(f'error: ripgrid saving preview')
|
||||||
|
######################################################################################################################################### autogrid <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< autogrid
|
||||||
|
def flipautogrid(self,s):
|
||||||
|
self.AUTO_GRID=not self.AUTO_GRID
|
||||||
|
self.l0g(f'<<< autogrid mode: {self.AUTO_GRID} >>>')
|
||||||
|
######################################################################################################################################### autogrid <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< autogrid
|
||||||
|
def autogrid(self,s):
|
||||||
|
self.l0g(f'<<< autogrid mode: enabled >>>')
|
||||||
|
#######################################################################################################################################
|
||||||
|
if not self.REDIMENSION==2:
|
||||||
|
self.REDIMENSION=2
|
||||||
|
self.loadimage()
|
||||||
|
#######################################################################################################################################
|
||||||
|
reso=self.calcreso(f'{self.image.width}x{self.image.height}')
|
||||||
|
agx=0; agy=0;
|
||||||
|
try:
|
||||||
|
AGX,AGY=[reso[x] for x in reso.keys()]
|
||||||
|
except:
|
||||||
|
AGXY=[reso[x] for x in reso.keys()]
|
||||||
|
AGX=AGXY; AGY=AGXY
|
||||||
|
if 1024 in AGX and 1024 in AGY:
|
||||||
|
agx=self.image.width/1024
|
||||||
|
agy=self.image.height/1024
|
||||||
|
elif 1024 in AGX and 768 in AGY:
|
||||||
|
agx=self.image.width/1024
|
||||||
|
agy=self.image.height/768
|
||||||
|
elif 768 in AGX and 1024 in AGY:
|
||||||
|
agx=self.image.width/768
|
||||||
|
agy=self.image.height/1024
|
||||||
|
elif 768 in AGX and 768 in AGY:
|
||||||
|
agx=self.image.width/768
|
||||||
|
agy=self.image.height/768
|
||||||
|
elif 768 in AGX and 512 in AGY:
|
||||||
|
agx=self.image.width/768
|
||||||
|
agy=self.image.height/512
|
||||||
|
elif 512 in AGX and 768 in AGY:
|
||||||
|
agx=self.image.width/512
|
||||||
|
agy=self.image.height/768
|
||||||
|
elif 512 in AGX and 512 in AGY:
|
||||||
|
agx=self.image.width/512
|
||||||
|
agy=self.image.height/512
|
||||||
|
else:
|
||||||
|
inx=0; iny=-1;
|
||||||
|
for n in range(len(reso[self.image.width])):
|
||||||
|
inx-=1
|
||||||
|
agx=self.image.width/reso[self.image.width][inx]
|
||||||
|
agy=self.image.height/reso[self.image.height][iny]
|
||||||
|
if agx>=agy:
|
||||||
|
print(f'{agx}x{agy}')
|
||||||
|
break
|
||||||
|
self.gx=int(agx)
|
||||||
|
self.GX=int(agx)
|
||||||
|
self.gy=int(agy)
|
||||||
|
self.GY=int(agy)
|
||||||
|
_x=self.root.winfo_screenwidth()/self.GX
|
||||||
|
_y=self.root.winfo_screenheight()/self.GY
|
||||||
|
#######################################################################################################################################
|
||||||
|
[ self.canvas.delete(x) for x in self.canvas.find_all() if not 'activeimage' in self.canvas.itemconfig(x) ]
|
||||||
|
#######################################################################################################################################
|
||||||
|
self.cellrect[0]=self.canvas.create_rectangle(0,0,self.root.winfo_screenwidth()-1,self.root.winfo_screenheight()-1, outline='red2', width=1)
|
||||||
|
_x=self.root.winfo_screenwidth()/self.GX; _y=self.root.winfo_screenheight()/self.GY
|
||||||
|
for Y in range(self.gy+1):
|
||||||
|
for X in range(self.gx):
|
||||||
|
self.cellrect[1].append(self.canvas.create_rectangle((_x*X),(_y*Y),(_x*X)+_x,(_y*Y)+_y,outline=self.autocolor(1),width=1))
|
||||||
|
self.cellrect[2].append(self.canvas.create_rectangle((_x*X)+3,(_y*Y)+3,(_x*X)+_x-2,(_y*Y)+_y-2,outline=self.autocolor(0),width=4))
|
||||||
|
#######################################################################################################################################
|
||||||
|
x_x=self.root.winfo_screenwidth()/2
|
||||||
|
y_y=self.root.winfo_screenheight()/2
|
||||||
|
#######################################################################################################################################
|
||||||
|
if self.RENDER_TEXT:
|
||||||
|
if self.MARKED_FILES[self.IMAGE_INDEX]==0: COLOR=self.NORMAL_TEXT_COLOR
|
||||||
|
elif self.MARKED_FILES[self.IMAGE_INDEX]==1: COLOR='green'
|
||||||
|
elif self.MARKED_FILES[self.IMAGE_INDEX]==-1: COLOR='red'
|
||||||
|
#####################################################################################################################################
|
||||||
|
Buffer = 'filename: {}\nredimension: {} - screen: {}x{} - image: {}x{} - diff: {}x{} - resize: {}x{}\nfile: {}/{} - interval: {}'.format(self.IMAGE_LIST[self.IMAGE_INDEX],self.REDIMENSION,self.root.winfo_screenwidth(),self.root.winfo_screenheight(),self.image.width,self.image.height,self.root.winfo_screenwidth()-self.image.width,self.root.winfo_screenheight()-self.image.height,self.XX,self.YY,self.IMAGE_INDEX,len(self.IMAGE_LIST)-1,self.PUMP_INTERVAL)
|
||||||
|
self.l0g('break <-> here here here here here here here here here here here here here here here here here here here here here here here')
|
||||||
|
#####################################################################################################################################
|
||||||
|
self.canvas.create_text(x_x,85,text=Buffer,fill=COLOR,justify='center'); self.root.title(Buffer)
|
||||||
|
#######################################################################################################################################
|
||||||
|
self.root.update() ####################################################################################################################
|
||||||
|
self.AUTO_GRID=False
|
||||||
|
self.GRID_MODE=True
|
||||||
|
self.grid(self)
|
||||||
|
######################################################################################################################################### autopump
|
||||||
def autopump(self,s):
|
def autopump(self,s):
|
||||||
self.PUMP_AUTO = not self.PUMP_AUTO
|
self.PUMP_AUTO = not self.PUMP_AUTO
|
||||||
if self.PUMP_AUTO:
|
if self.PUMP_AUTO:
|
||||||
@ -198,14 +389,14 @@ class DR1P1M4G3():
|
|||||||
self.right(self)
|
self.right(self)
|
||||||
if self.PUMP_INTERVAL < 0.01: self.PUMP_INTERVAL+=0.5
|
if self.PUMP_INTERVAL < 0.01: self.PUMP_INTERVAL+=0.5
|
||||||
sleep(self.PUMP_INTERVAL)
|
sleep(self.PUMP_INTERVAL)
|
||||||
print(self.PUMP_AUTO)
|
self.l0g(self.PUMP_AUTO)
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### redimension
|
||||||
def redimension(self,s):
|
def redimension(self,s):
|
||||||
self.canvas.delete('all')
|
self.canvas.delete('all')
|
||||||
self.REDIMENSION+=1
|
self.REDIMENSION+=1
|
||||||
if self.REDIMENSION>4: self.REDIMENSION=0
|
if self.REDIMENSION>4: self.REDIMENSION=0
|
||||||
self.loadimage()
|
self.loadimage()
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### loadimage <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< loadimage
|
||||||
def loadimage(self):
|
def loadimage(self):
|
||||||
self.canvas.delete('all')
|
self.canvas.delete('all')
|
||||||
try:
|
try:
|
||||||
@ -315,7 +506,7 @@ class DR1P1M4G3():
|
|||||||
self.canvas.create_rectangle(0,0,self.root.winfo_screenwidth(),self.root.winfo_screenheight(), outline=COLOR, width=25,)
|
self.canvas.create_rectangle(0,0,self.root.winfo_screenwidth(),self.root.winfo_screenheight(), outline=COLOR, width=25,)
|
||||||
self.texting=self.canvas.create_text(self.root.winfo_screenwidth()/2, 85, text=Buffer,fill=COLOR,justify='center',font=("Arial", 25))
|
self.texting=self.canvas.create_text(self.root.winfo_screenwidth()/2, 85, text=Buffer,fill=COLOR,justify='center',font=("Arial", 25))
|
||||||
self.root.title(Buffer)
|
self.root.title(Buffer)
|
||||||
print(f"{offset} / {x} - {i}")
|
self.l0g(f"{offset} / {x} - {i}")
|
||||||
self.root.update()
|
self.root.update()
|
||||||
else:
|
else:
|
||||||
self.resized_image=self.image.resize((xx,yy),Image.LANCZOS)
|
self.resized_image=self.image.resize((xx,yy),Image.LANCZOS)
|
||||||
@ -339,7 +530,7 @@ class DR1P1M4G3():
|
|||||||
self.texting=self.canvas.create_text(self.root.winfo_screenwidth()/2, 85, text=Buffer,fill=COLOR,justify='center',font=("Arial", 25))
|
self.texting=self.canvas.create_text(self.root.winfo_screenwidth()/2, 85, text=Buffer,fill=COLOR,justify='center',font=("Arial", 25))
|
||||||
self.root.title(Buffer)
|
self.root.title(Buffer)
|
||||||
try:
|
try:
|
||||||
print(f"{offset} / {x} - {i}")
|
self.l0g(f"{offset} / {x} - {i}")
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
if self.REDIMENSION==1:
|
if self.REDIMENSION==1:
|
||||||
@ -367,6 +558,8 @@ class DR1P1M4G3():
|
|||||||
self.texting=self.canvas.create_text(self.root.winfo_screenwidth()/2, 85, text=Buffer,fill=COLOR,justify='center',font=("Arial", 25))
|
self.texting=self.canvas.create_text(self.root.winfo_screenwidth()/2, 85, text=Buffer,fill=COLOR,justify='center',font=("Arial", 25))
|
||||||
self.root.title(Buffer)
|
self.root.title(Buffer)
|
||||||
self.root.update()
|
self.root.update()
|
||||||
|
if self.AUTO_GRID:
|
||||||
|
self.autogrid(self)
|
||||||
#####################################################################################################################################
|
#####################################################################################################################################
|
||||||
elif self.REDIMENSION==3:
|
elif self.REDIMENSION==3:
|
||||||
self.canvas.delete('all')
|
self.canvas.delete('all')
|
||||||
@ -430,17 +623,29 @@ class DR1P1M4G3():
|
|||||||
elif self.MARKED_FILES[self.IMAGE_INDEX]==-1:
|
elif self.MARKED_FILES[self.IMAGE_INDEX]==-1:
|
||||||
COLOR='red'
|
COLOR='red'
|
||||||
self.canvas.create_rectangle(0,0,self.root.winfo_screenwidth(),self.root.winfo_screenheight(), outline=COLOR, width=25,)
|
self.canvas.create_rectangle(0,0,self.root.winfo_screenwidth(),self.root.winfo_screenheight(), outline=COLOR, width=25,)
|
||||||
self.texting=self.canvas.create_text(self.root.winfo_screenwidth()/2, 85, text=Name,fill=COLOR,justify='center',font=("Arial", 25))
|
self.texting=self.canvas.create_text(self.root.winfo_screenwidth()/2,85,text=Name,fill=COLOR,justify='center',font=(self.NORMAL_TEXT_FONT, self.NORMAL_TEXT_SIZE))
|
||||||
self.root.title(Name)
|
self.root.title(Name)
|
||||||
self.root.update()
|
self.root.update()
|
||||||
except IOError:
|
except IOError:
|
||||||
print(f"error: non-picture, skipping past - {self.IMAGE_LIST[self.IMAGE_INDEX]}")
|
self.l0g(f"error: non-picture, skipping past - {self.IMAGE_LIST[self.IMAGE_INDEX]}")
|
||||||
if self.LAST_DIRECTION:
|
if self.LAST_DIRECTION:
|
||||||
self.right(self)
|
self.right(self)
|
||||||
else:
|
else:
|
||||||
self.left(self)
|
self.left(self)
|
||||||
print('<< dr1p1m4g3 >> screen: {}x{} - image: {}x{} - file: {}/{} - interval: {} - filename: {}'.format(self.root.winfo_screenwidth(),self.root.winfo_screenheight(),self.image.width,self.image.height,self.IMAGE_INDEX,len(self.IMAGE_LIST)-1,self.PUMP_INTERVAL,self.IMAGE_LIST[self.IMAGE_INDEX]))
|
self.l0g('<< dr1p1m4g3 >> screen: {}x{} - image: {}x{} - file: {}/{} - interval: {} - filename: {}'.format(self.root.winfo_screenwidth(),self.root.winfo_screenheight(),self.image.width,self.image.height,self.IMAGE_INDEX,len(self.IMAGE_LIST)-1,self.PUMP_INTERVAL,self.IMAGE_LIST[self.IMAGE_INDEX]))
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### log
|
||||||
|
def log(self,s):
|
||||||
|
f=open(self.logfile,'a')
|
||||||
|
f.write(f'{s}\n')
|
||||||
|
f.close()
|
||||||
|
######################################################################################################################################### calcreso <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< calcreso
|
||||||
|
def calcreso(self,s):
|
||||||
|
x,y=s.split('x');X=[];Y=[]
|
||||||
|
for i in range(256,1024):
|
||||||
|
if not (int(x)/i) % 1: X.append(i)
|
||||||
|
if not (int(y)/i) % 1: Y.append(i)
|
||||||
|
return {int(x):X,int(y):Y}
|
||||||
|
######################################################################################################################################### getfilelist <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< getfilelist
|
||||||
def getfilelist(self):
|
def getfilelist(self):
|
||||||
# self.IMAGE_LIST=[ x for x in Path(self.IMAGE_DIR+'/').rglob('*') if not str(x).endswith('.txt') and not "intermediates" in x.name ]
|
# self.IMAGE_LIST=[ x for x in Path(self.IMAGE_DIR+'/').rglob('*') if not str(x).endswith('.txt') and not "intermediates" in x.name ]
|
||||||
if self.REFRESH==0:
|
if self.REFRESH==0:
|
||||||
@ -448,28 +653,40 @@ class DR1P1M4G3():
|
|||||||
FILE_LIST=[]
|
FILE_LIST=[]
|
||||||
self.IMAGE_DIR_INDEX=[]
|
self.IMAGE_DIR_INDEX=[]
|
||||||
for i,_ in enumerate(self.DIR_IMAGE_LIST):
|
for i,_ in enumerate(self.DIR_IMAGE_LIST):
|
||||||
print(f'<<< generating image list recursively from base directory: {_}/* >>>')
|
self.l0g(f'<<< generating image list recursively from base directory: {_}/* >>>')
|
||||||
_FILE_LIST=[ x for x in Path(_+'/').rglob('*') ]
|
_FILE_LIST=[ x for x in Path(_+'/').rglob('*') ]
|
||||||
FILE_LIST+=_FILE_LIST
|
FILE_LIST+=_FILE_LIST
|
||||||
self.IMAGE_DIR_INDEX+=[i]*len(_FILE_LIST)
|
self.IMAGE_DIR_INDEX+=[i]*len(_FILE_LIST)
|
||||||
self.IMAGE_LIST=[]
|
self.IMAGE_LIST=[]
|
||||||
IMAGE_DIR_INDEX=[]
|
IMAGE_DIR_INDEX=[]
|
||||||
|
self.resodb=[]
|
||||||
for i,x in enumerate(FILE_LIST):
|
for i,x in enumerate(FILE_LIST):
|
||||||
try:
|
try:
|
||||||
if is_file_an_image(str(x)):
|
# if is_file_an_image(str(x)):
|
||||||
self.IMAGE_LIST.append(x)
|
self.IMAGE_LIST.append(x)
|
||||||
IMAGE_DIR_INDEX+=[self.IMAGE_DIR_INDEX[i]]
|
IMAGE_DIR_INDEX+=[self.IMAGE_DIR_INDEX[i]]
|
||||||
print(f'added: {str(x)}')
|
self.l0g(f'added: {str(x)}')
|
||||||
|
reso_x,reso_y=Image.open(x).size
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f'skipped: {str(x)} - reason: {e}')
|
self.l0g(f'skipped: {str(x)} - reason: {e}')
|
||||||
|
#######################################################
|
||||||
|
try:
|
||||||
|
self.l0g('<<< writing image resolution database >>>')
|
||||||
|
self.resodb=sorted(set(self.resodb)) # <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
||||||
|
#for _ in self.resodb: self.log(_) # <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
||||||
|
except Exception as e:
|
||||||
|
self.l0g('error writing image resolution database: {e}')
|
||||||
|
#######################################################
|
||||||
|
self.root.deiconify()
|
||||||
|
#######################################################
|
||||||
self.IMAGE_DIR_INDEX=IMAGE_DIR_INDEX
|
self.IMAGE_DIR_INDEX=IMAGE_DIR_INDEX
|
||||||
self.MARKED_FILES=[0]*len(IMAGE_DIR_INDEX)
|
self.MARKED_FILES=[0]*len(IMAGE_DIR_INDEX)
|
||||||
if self.USER_USERSHUF:
|
if self.USER_USERSHUF:
|
||||||
shuffle(self.IMAGE_LIST)
|
shuffle(self.IMAGE_LIST)
|
||||||
self.IMAGE_INDEX=randint(0,len(self.IMAGE_LIST)-1)
|
self.IMAGE_INDEX=randint(0,len(self.IMAGE_LIST)-1)
|
||||||
print(f'index:{self.IMAGE_LIST[self.IMAGE_INDEX]}/{len(self.IMAGE_LIST)} - filename:{self.IMAGE_LIST[self.IMAGE_INDEX]} - size:{self.image.size}: [ width:{self.image.width} / height:{self.image.height} ]')
|
self.l0g(f'index:{self.IMAGE_LIST[self.IMAGE_INDEX]}/{len(self.IMAGE_LIST)} - filename:{self.IMAGE_LIST[self.IMAGE_INDEX]} - size:{self.image.size}: [ width:{self.image.width} / height:{self.image.height} ]')
|
||||||
self.IMAGE_LIST=sorted(self.IMAGE_LIST)
|
self.IMAGE_LIST=sorted(self.IMAGE_LIST)
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### movecell <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< movecell
|
||||||
def movecell(self):
|
def movecell(self):
|
||||||
_x=self.root.winfo_screenwidth()/self.GX
|
_x=self.root.winfo_screenwidth()/self.GX
|
||||||
_y=self.root.winfo_screenheight()/self.GY
|
_y=self.root.winfo_screenheight()/self.GY
|
||||||
@ -485,8 +702,8 @@ class DR1P1M4G3():
|
|||||||
self.moverect = self.canvas.create_rectangle((self.xy[0]*_x)+5,(self.xy[1]*_y)+5,(self.xy[0]*_x)+_x-5,(self.xy[1]*_y)+_y-5,outline=self.autocolor(2),width=8)
|
self.moverect = self.canvas.create_rectangle((self.xy[0]*_x)+5,(self.xy[1]*_y)+5,(self.xy[0]*_x)+_x-5,(self.xy[1]*_y)+_y-5,outline=self.autocolor(2),width=8)
|
||||||
_x=self.image.width/self.GX
|
_x=self.image.width/self.GX
|
||||||
_y=self.image.height/self.GY
|
_y=self.image.height/self.GY
|
||||||
image_gridcell=self.image.crop([ (_x*self.xy[0]),(_y*self.xy[1]),(_x*self.xy[0])+_x,(_y*self.xy[1])+_y ])
|
self.image_gridcell=self.image.crop([ (_x*self.xy[0]),(_y*self.xy[1]),(_x*self.xy[0])+_x,(_y*self.xy[1])+_y ])
|
||||||
self.image_preview=ImageTk.PhotoImage(image_gridcell)
|
self.image_preview=ImageTk.PhotoImage(self.image_gridcell)
|
||||||
x_x=self.root.winfo_screenwidth()/2
|
x_x=self.root.winfo_screenwidth()/2
|
||||||
y_y=self.root.winfo_screenheight()/2
|
y_y=self.root.winfo_screenheight()/2
|
||||||
|
|
||||||
@ -514,7 +731,7 @@ class DR1P1M4G3():
|
|||||||
self.root.title(Buffer)
|
self.root.title(Buffer)
|
||||||
|
|
||||||
self.root.update()
|
self.root.update()
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### up
|
||||||
def up(self,s):
|
def up(self,s):
|
||||||
if not self.GRID_MODE:
|
if not self.GRID_MODE:
|
||||||
######################
|
######################
|
||||||
@ -526,7 +743,7 @@ class DR1P1M4G3():
|
|||||||
if self.xy[1]<0: self.xy[1]=0
|
if self.xy[1]<0: self.xy[1]=0
|
||||||
################
|
################
|
||||||
self.movecell()
|
self.movecell()
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### down
|
||||||
def down(self,s):
|
def down(self,s):
|
||||||
if not self.GRID_MODE:
|
if not self.GRID_MODE:
|
||||||
######################
|
######################
|
||||||
@ -538,7 +755,7 @@ class DR1P1M4G3():
|
|||||||
if self.xy[1]>self.gy: self.xy[1]=self.gy
|
if self.xy[1]>self.gy: self.xy[1]=self.gy
|
||||||
######################
|
######################
|
||||||
self.movecell()
|
self.movecell()
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### left
|
||||||
def left(self,s):
|
def left(self,s):
|
||||||
if not self.GRID_MODE:
|
if not self.GRID_MODE:
|
||||||
######################
|
######################
|
||||||
@ -555,7 +772,7 @@ class DR1P1M4G3():
|
|||||||
if self.xy[0]<0: self.xy[0]=0
|
if self.xy[0]<0: self.xy[0]=0
|
||||||
################
|
################
|
||||||
self.movecell()
|
self.movecell()
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### right
|
||||||
def right(self,s):
|
def right(self,s):
|
||||||
if not self.GRID_MODE:
|
if not self.GRID_MODE:
|
||||||
######################
|
######################
|
||||||
@ -572,117 +789,9 @@ class DR1P1M4G3():
|
|||||||
if self.xy[0]>=self.gx: self.xy[0]=self.gx-1
|
if self.xy[0]>=self.gx: self.xy[0]=self.gx-1
|
||||||
######################
|
######################
|
||||||
self.movecell()
|
self.movecell()
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### grid <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< grid
|
||||||
|
|
||||||
#########################################################################################################################################
|
|
||||||
|
|
||||||
# A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - AUTOGRID
|
|
||||||
# A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - AUTOGRID
|
|
||||||
# A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - AUTOGRID
|
|
||||||
# A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - AUTOGRID
|
|
||||||
# A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - AUTOGRID
|
|
||||||
|
|
||||||
#########################################################################################################################################
|
|
||||||
|
|
||||||
##################### ###################################################################################################################
|
|
||||||
##################### ###################################################################################################################
|
|
||||||
def autogrid(self,s): ###################################################################################################################
|
|
||||||
##################### ###################################################################################################################
|
|
||||||
##################### ###################################################################################################################
|
|
||||||
|
|
||||||
#######################################################################################################################################
|
|
||||||
print(f'<<< autogrid mode: enabled >>>')
|
|
||||||
|
|
||||||
TABLES={ '1536x1024':512x512','3584x3072':'512x512','2560x2048':'512x512','2048x1536':'512x512','4000x444':'444x444','1760x880':'880x440','3520x2640':'660x660','1760x1760':'880x880','2640x1760':'600x440','6640x9920':'664x992'}
|
|
||||||
#######################################################################################################################################
|
|
||||||
if not self.REDIMENSION==2:
|
|
||||||
self.REDIMENSION=2
|
|
||||||
self.loadimage()
|
|
||||||
#######################################################################################################################################
|
|
||||||
self.gx-=1; print(f'<<< grid mode: removed x grid cell. x={self.gx},y={self.gy} >>>')
|
|
||||||
self.gy-=1; print(f'<<< grid mode: removed y grid cell. x={self.gx},y={self.gy} >>>')
|
|
||||||
self.gx+=1; print(f'<<< grid mode: added x grid cell. x={self.gx},y={self.gy} >>>')
|
|
||||||
self.gy+=1; print(f'<<< grid mode: added y grid cell. x={self.gx},y={self.gy} >>>')
|
|
||||||
#######################################################################################################################################
|
|
||||||
self.GX-=1; print(f'<<< grid mode: x division cell height decreased x={self.GX},y={self.GY} >>>')
|
|
||||||
self.GY-=1; print(f'<<< grid mode: y division cell height decreaded x={self.GX},y={self.GY} >>>')
|
|
||||||
self.GX+=1; print(f'<<< grid mode: x division cell height increased x={self.GX},y={self.GY} >>>')
|
|
||||||
self.GY+=1; print(f'<<< grid mode: y division cell height increased x={self.GX},y={self.GY} >>>')
|
|
||||||
#######################################################################################################################################
|
|
||||||
self.xy[1]-=1
|
|
||||||
if self.xy[1]<0: self.xy[1]=0
|
|
||||||
self.xy[1]+=1
|
|
||||||
if self.xy[1]>self.gy: self.xy[1]=self.gy
|
|
||||||
self.xy[0]-=1
|
|
||||||
if self.xy[0]<0: self.xy[0]=0
|
|
||||||
self.xy[0]+=1
|
|
||||||
if self.xy[0]>=self.gx: self.xy[0]=self.gx-1
|
|
||||||
self.movecell()
|
|
||||||
#######################################################################################################################################
|
|
||||||
_x=self.root.winfo_screenwidth()/self.GX
|
|
||||||
_y=self.root.winfo_screenheight()/self.GY
|
|
||||||
#######################################################################################################################################
|
|
||||||
[ self.canvas.delete(x) for x in self.canvas.find_all() if not 'activeimage' in self.canvas.itemconfig(x) ]
|
|
||||||
#######################################################################################################################################
|
|
||||||
self.moverect = self.canvas.create_rectangle((self.xy[0]*_x)+5,(self.xy[1]*_y)+5,(self.xy[0]*_x)+_x-5,(self.xy[1]*_y)+_y-5,outline=self.autocolor(2),width=8)
|
|
||||||
_x=self.image.width/self.GX
|
|
||||||
_y=self.image.height/self.GY
|
|
||||||
image_gridcell=self.image.crop([ (_x*self.xy[0]),(_y*self.xy[1]),(_x*self.xy[0])+_x,(_y*self.xy[1])+_y ])
|
|
||||||
self.image_preview=ImageTk.PhotoImage(image_gridcell)
|
|
||||||
x_x=self.root.winfo_screenwidth()/2
|
|
||||||
y_y=self.root.winfo_screenheight()/2
|
|
||||||
#######################################################################################################################################
|
|
||||||
self.cellrect[0]=self.canvas.create_rectangle(0,0,self.root.winfo_screenwidth()-1,self.root.winfo_screenheight()-1, outline='red2', width=1)
|
|
||||||
_x=self.root.winfo_screenwidth()/self.GX; _y=self.root.winfo_screenheight()/self.GY
|
|
||||||
for Y in range(self.gy+1):
|
|
||||||
for X in range(self.gx):
|
|
||||||
self.cellrect[1].append(self.canvas.create_rectangle((_x*X),(_y*Y),(_x*X)+_x,(_y*Y)+_y,outline=self.autocolor(1),width=1))
|
|
||||||
self.cellrect[2].append(self.canvas.create_rectangle((_x*X)+3,(_y*Y)+3,(_x*X)+_x-2,(_y*Y)+_y-2,outline=self.autocolor(0),width=4))
|
|
||||||
#######################################################################################################################################
|
|
||||||
self.preview=self.canvas.create_image(x_x,y_y,image=self.image_preview)
|
|
||||||
#######################################################################################################################################
|
|
||||||
if self.RENDER_TEXT:
|
|
||||||
if self.MARKED_FILES[self.IMAGE_INDEX]==0: COLOR=self.NORMAL_TEXT_COLOR
|
|
||||||
elif self.MARKED_FILES[self.IMAGE_INDEX]==1: COLOR='green'
|
|
||||||
elif self.MARKED_FILES[self.IMAGE_INDEX]==-1: COLOR='red'
|
|
||||||
#####################################################################################################################################
|
|
||||||
Buffer = f'filename: {self.IMAGE_LIST[self.IMAGE_INDEX]}\n'
|
|
||||||
Buffer+= f'redimension: {self.IMAGE_LIST[self.IMAGE_INDEX]}' + ' - '
|
|
||||||
Buffer+= f'screen: {self.REDIMENSION}x{self.root.winfo_screenwidth()}' + ' - '
|
|
||||||
Buffer+= f'image: {self.root.winfo_screenheight()}x{self.image.width}' + ' - '
|
|
||||||
Buffer+= f'diff: {self.image.height}x{self.root.winfo_screenwidth()-self.image.width}' + ' - '
|
|
||||||
Buffer+= f'resize: {self.root.winfo_screenheight()-self.image.height}x{self.XX}\n'
|
|
||||||
Buffer+= f'file: {self.YY}/{self.IMAGE_INDEX} - interval: {len(self.IMAGE_LIST)-1} - wrong {self.PUMP_INTERVAL}\n'
|
|
||||||
Buffer+= f'{self.xy[0]}x{self.GX} / {self.xy[1]}y{self.GY} - {self.image.width/self.GX}x{self.image.height/self.GY}'
|
|
||||||
#####################################################################################################################################
|
|
||||||
print('break <-> here here here here here here here here here here here here here here here here here here here here here here here')
|
|
||||||
Buffer = 'filename: {}\nredimension: {} - screen: {}x{} - image: {}x{} - diff: {}x{} - resize: {}x{}\nfile: {}/{} - interval: {}'.format(self.IMAGE_LIST[self.IMAGE_INDEX],self.REDIMENSION,self.root.winfo_screenwidth(),self.root.winfo_screenheight(),self.image.width,self.image.height,self.root.winfo_screenwidth()-self.image.width,self.root.winfo_screenheight()-self.image.height,self.XX,self.YY,self.IMAGE_INDEX,len(self.IMAGE_LIST)-1,self.PUMP_INTERVAL)
|
|
||||||
print('break <-> here here here here here here here here here here here here here here here here here here here here here here here')
|
|
||||||
#####################################################################################################################################
|
|
||||||
self.canvas.create_text(x_x,85,text=Buffer,fill=COLOR,justify='center'); self.root.title(Buffer)
|
|
||||||
#####################################################################################################################################
|
|
||||||
#######################################################################################################################################
|
|
||||||
|
|
||||||
################## ####################################################################################################################
|
|
||||||
################## ####################################################################################################################
|
|
||||||
self.root.update() ####################################################################################################################
|
|
||||||
################## ####################################################################################################################
|
|
||||||
################## ####################################################################################################################
|
|
||||||
|
|
||||||
#########################################################################################################################################
|
|
||||||
|
|
||||||
# A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - AUTOGRID
|
|
||||||
# A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - AUTOGRID
|
|
||||||
# A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - AUTOGRID
|
|
||||||
# A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - AUTOGRID
|
|
||||||
# A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - A U T O G R I D - AUTOGRID
|
|
||||||
|
|
||||||
#########################################################################################################################################
|
|
||||||
|
|
||||||
#################
|
|
||||||
def grid(self,s):
|
def grid(self,s):
|
||||||
#################
|
#################
|
||||||
|
|
||||||
if not self.GRID_MODE:
|
if not self.GRID_MODE:
|
||||||
self.GRID_MODE=True
|
self.GRID_MODE=True
|
||||||
if not s in ['x','y', 'X', 'Y']:
|
if not s in ['x','y', 'X', 'Y']:
|
||||||
@ -690,10 +799,10 @@ class DR1P1M4G3():
|
|||||||
self.loadimage()
|
self.loadimage()
|
||||||
elif s in ['X', 'Y']:
|
elif s in ['X', 'Y']:
|
||||||
for _ in self.cellrect[1]:
|
for _ in self.cellrect[1]:
|
||||||
print(f'<<< deleting grid rect: {_} >>>')
|
self.l0g(f'<<< deleting grid rect: {_} >>>')
|
||||||
self.canvas.delete(_)
|
self.canvas.delete(_)
|
||||||
for _ in self.cellrect[2]:
|
for _ in self.cellrect[2]:
|
||||||
print(f'<<< deleting grid rect: {_} >>>')
|
self.l0g(f'<<< deleting grid rect: {_} >>>')
|
||||||
self.canvas.delete(_)
|
self.canvas.delete(_)
|
||||||
self.cellrect[0]=self.canvas.create_rectangle(0,0,self.root.winfo_screenwidth()-1,self.root.winfo_screenheight()-1, outline='red2', width=1)
|
self.cellrect[0]=self.canvas.create_rectangle(0,0,self.root.winfo_screenwidth()-1,self.root.winfo_screenheight()-1, outline='red2', width=1)
|
||||||
_x=self.root.winfo_screenwidth()/self.GX; _y=self.root.winfo_screenheight()/self.GY
|
_x=self.root.winfo_screenwidth()/self.GX; _y=self.root.winfo_screenheight()/self.GY
|
||||||
@ -702,12 +811,12 @@ class DR1P1M4G3():
|
|||||||
self.cellrect[1].append(self.canvas.create_rectangle((_x*X),(_y*Y),(_x*X)+_x,(_y*Y)+_y,outline=self.autocolor(1),width=1))
|
self.cellrect[1].append(self.canvas.create_rectangle((_x*X),(_y*Y),(_x*X)+_x,(_y*Y)+_y,outline=self.autocolor(1),width=1))
|
||||||
self.cellrect[2].append(self.canvas.create_rectangle((_x*X)+3,(_y*Y)+3,(_x*X)+_x-2,(_y*Y)+_y-2,outline=self.autocolor(0),width=4))
|
self.cellrect[2].append(self.canvas.create_rectangle((_x*X)+3,(_y*Y)+3,(_x*X)+_x-2,(_y*Y)+_y-2,outline=self.autocolor(0),width=4))
|
||||||
self.root.update()
|
self.root.update()
|
||||||
|
self.l0g(f'<<< grid mode: enabled >>>')
|
||||||
|
######################################################################################################################################### GRID
|
||||||
print(f'<<< grid mode: enabled >>>')
|
def halting(self,s):
|
||||||
|
print(f'gx{self.gx}GX{self.GX}xy[0]{self.xy[0]}/gy{self.gy}GY{self.GY}xy[1]{self.xy[1]}')
|
||||||
|
pass
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### GRID
|
||||||
def GRID(self,s):
|
def GRID(self,s):
|
||||||
if self.GRID_MODE:
|
if self.GRID_MODE:
|
||||||
self.GRID_MODE=False
|
self.GRID_MODE=False
|
||||||
@ -716,8 +825,8 @@ class DR1P1M4G3():
|
|||||||
self.gx=0
|
self.gx=0
|
||||||
self.loadimage()
|
self.loadimage()
|
||||||
self.root.update()
|
self.root.update()
|
||||||
print(f'<<< grid mode: disabled >>>')
|
self.l0g(f'<<< grid mode: disabled >>>')
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### gridx
|
||||||
def gridx(self,s):
|
def gridx(self,s):
|
||||||
######################
|
######################
|
||||||
if not self.GRID_MODE:
|
if not self.GRID_MODE:
|
||||||
@ -727,8 +836,8 @@ class DR1P1M4G3():
|
|||||||
######################
|
######################
|
||||||
self.gx+=1
|
self.gx+=1
|
||||||
self.grid('x')
|
self.grid('x')
|
||||||
print(f'<<< grid mode: added x grid cell. x={self.gx},y={self.gy} >>>')
|
self.l0g(f'<<< grid mode: added x grid cell. x={self.gx},y={self.gy} >>>')
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### gridy
|
||||||
def gridy(self,s):
|
def gridy(self,s):
|
||||||
######################
|
######################
|
||||||
if not self.GRID_MODE:
|
if not self.GRID_MODE:
|
||||||
@ -738,8 +847,8 @@ class DR1P1M4G3():
|
|||||||
######################
|
######################
|
||||||
self.gy+=1
|
self.gy+=1
|
||||||
self.grid('y')
|
self.grid('y')
|
||||||
print(f'<<< grid mode: added y grid cell. x={self.gx},y={self.gy} >>>')
|
self.l0g(f'<<< grid mode: added y grid cell. x={self.gx},y={self.gy} >>>')
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### gridX
|
||||||
def gridX(self,s):
|
def gridX(self,s):
|
||||||
######################
|
######################
|
||||||
if not self.GRID_MODE:
|
if not self.GRID_MODE:
|
||||||
@ -750,8 +859,8 @@ class DR1P1M4G3():
|
|||||||
self.gx-=1
|
self.gx-=1
|
||||||
if self.gx < 0: self.gx=0
|
if self.gx < 0: self.gx=0
|
||||||
self.grid('X')
|
self.grid('X')
|
||||||
print(f'<<< grid mode: removed x cell. x={self.gx},y={self.gy} >>>')
|
self.l0g(f'<<< grid mode: removed x cell. x={self.gx},y={self.gy} >>>')
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### gridY
|
||||||
def gridY(self,s):
|
def gridY(self,s):
|
||||||
######################
|
######################
|
||||||
if not self.GRID_MODE:
|
if not self.GRID_MODE:
|
||||||
@ -762,8 +871,8 @@ class DR1P1M4G3():
|
|||||||
self.gy-=1
|
self.gy-=1
|
||||||
if self.gy < 0: self.gy=0
|
if self.gy < 0: self.gy=0
|
||||||
self.grid('Y')
|
self.grid('Y')
|
||||||
print(f'<<< grid mode: removed y cell. x={self.gx},y={self.gy} >>>')
|
self.l0g(f'<<< grid mode: removed y cell. x={self.gx},y={self.gy} >>>')
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### grid_cell_up_y
|
||||||
def grid_cell_up_y(self,s):
|
def grid_cell_up_y(self,s):
|
||||||
######################
|
######################
|
||||||
if not self.GRID_MODE:
|
if not self.GRID_MODE:
|
||||||
@ -772,7 +881,7 @@ class DR1P1M4G3():
|
|||||||
self.GRID_MODE=True
|
self.GRID_MODE=True
|
||||||
######################
|
######################
|
||||||
self.GY+=1
|
self.GY+=1
|
||||||
print(f'<<< grid mode: y division cell height increased. x={self.GX},y={self.GY} >>>')
|
self.l0g(f'<<< grid mode: y division cell height increased. x={self.GX},y={self.GY} >>>')
|
||||||
if self.RENDER_TEXT:
|
if self.RENDER_TEXT:
|
||||||
COLOR=''
|
COLOR=''
|
||||||
if self.MARKED_FILES[self.IMAGE_INDEX]==0:
|
if self.MARKED_FILES[self.IMAGE_INDEX]==0:
|
||||||
@ -788,7 +897,7 @@ class DR1P1M4G3():
|
|||||||
self.root.title(Buffer)
|
self.root.title(Buffer)
|
||||||
self.root.update()
|
self.root.update()
|
||||||
self.grid(self)
|
self.grid(self)
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### grid_cell_down_y
|
||||||
def grid_cell_down_y(self,s):
|
def grid_cell_down_y(self,s):
|
||||||
######################
|
######################
|
||||||
if not self.GRID_MODE:
|
if not self.GRID_MODE:
|
||||||
@ -797,7 +906,7 @@ class DR1P1M4G3():
|
|||||||
self.GRID_MODE=True
|
self.GRID_MODE=True
|
||||||
######################
|
######################
|
||||||
self.GY-=1
|
self.GY-=1
|
||||||
print(f'<<< grid mode: y division cell height decreased. x={self.GX},y={self.GY} >>>')
|
self.l0g(f'<<< grid mode: y division cell height decreased. x={self.GX},y={self.GY} >>>')
|
||||||
if self.RENDER_TEXT:
|
if self.RENDER_TEXT:
|
||||||
COLOR=''
|
COLOR=''
|
||||||
if self.MARKED_FILES[self.IMAGE_INDEX]==0:
|
if self.MARKED_FILES[self.IMAGE_INDEX]==0:
|
||||||
@ -813,7 +922,7 @@ class DR1P1M4G3():
|
|||||||
self.root.title(Buffer)
|
self.root.title(Buffer)
|
||||||
self.root.update()
|
self.root.update()
|
||||||
self.grid(self)
|
self.grid(self)
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### grid_cell_up_x
|
||||||
def grid_cell_up_x(self,s):
|
def grid_cell_up_x(self,s):
|
||||||
######################
|
######################
|
||||||
if not self.GRID_MODE:
|
if not self.GRID_MODE:
|
||||||
@ -822,7 +931,7 @@ class DR1P1M4G3():
|
|||||||
self.GRID_MODE=True
|
self.GRID_MODE=True
|
||||||
######################
|
######################
|
||||||
self.GX-=1
|
self.GX-=1
|
||||||
print(f'<<< grid mode: x division cell width decreased. x={self.GX},y={self.GY} >>>')
|
self.l0g(f'<<< grid mode: x division cell width decreased. x={self.GX},y={self.GY} >>>')
|
||||||
if self.RENDER_TEXT:
|
if self.RENDER_TEXT:
|
||||||
COLOR=''
|
COLOR=''
|
||||||
if self.MARKED_FILES[self.IMAGE_INDEX]==0:
|
if self.MARKED_FILES[self.IMAGE_INDEX]==0:
|
||||||
@ -838,7 +947,7 @@ class DR1P1M4G3():
|
|||||||
self.root.title(Buffer)
|
self.root.title(Buffer)
|
||||||
self.root.update()
|
self.root.update()
|
||||||
self.grid(self)
|
self.grid(self)
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### grid_cell_down_x
|
||||||
def grid_cell_down_x(self,s):
|
def grid_cell_down_x(self,s):
|
||||||
######################
|
######################
|
||||||
if not self.GRID_MODE:
|
if not self.GRID_MODE:
|
||||||
@ -847,7 +956,7 @@ class DR1P1M4G3():
|
|||||||
self.GRID_MODE=True
|
self.GRID_MODE=True
|
||||||
######################
|
######################
|
||||||
self.GX+=1
|
self.GX+=1
|
||||||
print(f'<<< grid mode: x division cell width increased. x={self.GX},y={self.GY} >>>')
|
self.l0g(f'<<< grid mode: x division cell width increased. x={self.GX},y={self.GY} >>>')
|
||||||
if self.RENDER_TEXT:
|
if self.RENDER_TEXT:
|
||||||
COLOR=''
|
COLOR=''
|
||||||
if self.MARKED_FILES[self.IMAGE_INDEX]==0:
|
if self.MARKED_FILES[self.IMAGE_INDEX]==0:
|
||||||
@ -863,7 +972,7 @@ class DR1P1M4G3():
|
|||||||
self.root.title(Buffer)
|
self.root.title(Buffer)
|
||||||
self.root.update()
|
self.root.update()
|
||||||
self.grid(self)
|
self.grid(self)
|
||||||
#########################################################################################################################################
|
######################################################################################################################################### main <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< mainloop with binds
|
||||||
def main(self):
|
def main(self):
|
||||||
#######################################################################################################################################
|
#######################################################################################################################################
|
||||||
try:
|
try:
|
||||||
@ -874,8 +983,9 @@ class DR1P1M4G3():
|
|||||||
self.root.eval('tk::PlaceWindow . center')
|
self.root.eval('tk::PlaceWindow . center')
|
||||||
#self.root.overrideredirect(True)
|
#self.root.overrideredirect(True)
|
||||||
self.root.wm_attributes("-topmost",True)
|
self.root.wm_attributes("-topmost",True)
|
||||||
self.root.wm_attributes("-transparent",True)
|
self.root.withdraw()
|
||||||
self.root.config(bg='systemTransparent')
|
#self.root.wm_attributes("-transparent",True)
|
||||||
|
#self.root.config(bg='systemTransparent')
|
||||||
self.image=Image.new(mode='RGB', size=(self.root.winfo_screenwidth(),self.root.winfo_screenheight()))
|
self.image=Image.new(mode='RGB', size=(self.root.winfo_screenwidth(),self.root.winfo_screenheight()))
|
||||||
self.photo=ImageTk.PhotoImage(self.image)
|
self.photo=ImageTk.PhotoImage(self.image)
|
||||||
self.canvas=Canvas(self.root,width=self.root.winfo_screenwidth(),height=self.root.winfo_screenheight(),bd=0,highlightthickness=0)
|
self.canvas=Canvas(self.root,width=self.root.winfo_screenwidth(),height=self.root.winfo_screenheight(),bd=0,highlightthickness=0)
|
||||||
@ -885,10 +995,13 @@ class DR1P1M4G3():
|
|||||||
self.IMAGE_INDEX=(0+int(self.USER_IMGINDEX))
|
self.IMAGE_INDEX=(0+int(self.USER_IMGINDEX))
|
||||||
self.PUMP_AUTO=self.USER_PUMPMODE
|
self.PUMP_AUTO=self.USER_PUMPMODE
|
||||||
self.getfilelist()
|
self.getfilelist()
|
||||||
|
self.canvas.bind("<z>",self.ripgrid)
|
||||||
|
self.canvas.bind("<a>",self.flipautogrid)
|
||||||
self.canvas.bind("<m>",self.shuffling)
|
self.canvas.bind("<m>",self.shuffling)
|
||||||
self.canvas.bind("<backslash>",self.autogrid)
|
self.canvas.bind("<backslash>",self.autogrid)
|
||||||
self.canvas.bind("<g>",self.grid)
|
self.canvas.bind("<g>",self.grid)
|
||||||
self.canvas.bind("<G>",self.GRID)
|
self.canvas.bind("<G>",self.GRID)
|
||||||
|
self.canvas.bind("<h>",self.halting)
|
||||||
self.canvas.bind("<x>",self.gridx)
|
self.canvas.bind("<x>",self.gridx)
|
||||||
self.canvas.bind("<y>",self.gridy)
|
self.canvas.bind("<y>",self.gridy)
|
||||||
self.canvas.bind("<X>",self.gridX)
|
self.canvas.bind("<X>",self.gridX)
|
||||||
@ -920,8 +1033,8 @@ class DR1P1M4G3():
|
|||||||
self.root.mainloop()
|
self.root.mainloop()
|
||||||
#######################################################################################################################################
|
#######################################################################################################################################
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
print(f"main(): {err}")
|
self.l0g(f"main(): {err}")
|
||||||
###########################################################################################################################################
|
########################################################################################################################################### main
|
||||||
def main(screen):
|
def main(screen):
|
||||||
DIR_IMAGE_LIST=[]
|
DIR_IMAGE_LIST=[]
|
||||||
curses.start_color()
|
curses.start_color()
|
||||||
@ -980,13 +1093,16 @@ def main(screen):
|
|||||||
curses.endwin()
|
curses.endwin()
|
||||||
DIR_IMAGE_LIST.append(os.getcwd())
|
DIR_IMAGE_LIST.append(os.getcwd())
|
||||||
return DIR_IMAGE_LIST
|
return DIR_IMAGE_LIST
|
||||||
###########################################################################################################################################
|
########################################################################################################################################### __name__
|
||||||
if __name__=="__main__":
|
if __name__=="__main__":
|
||||||
#########################################################################################################################################
|
#########################################################################################################################################
|
||||||
DEBUG=True
|
DEBUG=True
|
||||||
if DEBUG:
|
if DEBUG:
|
||||||
USERPATH=['/Users/dr1p/dr1p1m4g3/grids'] #wrapper(main)
|
if STARTUP_DIRECTORY_OVERRIDE:
|
||||||
IMGINDEX=int(0)
|
USERPATH=STARTUP_DIRECTORY_OVERRIDE
|
||||||
|
else:
|
||||||
|
USERPATH=wrapper(main)
|
||||||
|
IMGINDEX=int(3)
|
||||||
RENDMODE=int(1)
|
RENDMODE=int(1)
|
||||||
PUMPMODE=int(1)
|
PUMPMODE=int(1)
|
||||||
PUMPTIME=10
|
PUMPTIME=10
|
||||||
@ -1045,5 +1161,37 @@ if __name__=="__main__":
|
|||||||
print(f'[ no shuffle mode specified: defaulting to being turned off ]')
|
print(f'[ no shuffle mode specified: defaulting to being turned off ]')
|
||||||
#########################################################################################################################################
|
#########################################################################################################################################
|
||||||
dr1p1m4g3=DR1P1M4G3(USERPATH,IMGINDEX,RENDMODE,PUMPMODE,PUMPTIME,USERSHUF)
|
dr1p1m4g3=DR1P1M4G3(USERPATH,IMGINDEX,RENDMODE,PUMPMODE,PUMPTIME,USERSHUF)
|
||||||
#########################################################################################################################################
|
|
||||||
####################################################################################################################################### EOF
|
####################################################################################################################################### EOF
|
||||||
|
###########################################################################################################################################
|
||||||
|
###########################################################################################################################################
|
||||||
|
###################MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM#######################
|
||||||
|
###################MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMh+MMMMMMMMMMMMMMhsMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM#######################
|
||||||
|
###################MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMm/ oMMMMMMMMMMMMMMm +NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM#######################
|
||||||
|
###################MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMy` yMMMMMMMMMMMMMMM- -mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM#######################
|
||||||
|
###################MMMMMMMMMMMMMMMMMMMMMMMs+dMMMMMMMMMM+ sMMMMMMMMMMMMMMM- `dMMMMMMMMMMms/NMMMMMMMMMMMMMMMMMMMMM#######################
|
||||||
|
###################MMMMMMMMMMMMMMMMMMMMMMMM+ .omMMMMMM: -MMMMMMMMMMMMMMo `yMMMMMMMy: `dMMMMMMMMMMMMMMMMMMMMMM#######################
|
||||||
|
###################MMMMMMMMMMMMMMMMMMMMMMMMM- /dMMM+ sMMMMMMMMMMMMh `hMMMNo` sMMMMMMMMMMMMMMMMMMMMMMM#######################
|
||||||
|
###################MMMMMMMMMMMMMMMMMMMMMMMMMd :dm `mMMMMMMMMMMN. .NNo` .MMMMMMMMMMMMMMMMMMMMMMMM#######################
|
||||||
|
###################MMMMMMMMMMMMMMMMMMMMMMMMMM: - :MMMMMMMMMMs :` sMMMMMMMMMMMMMMMMMMMMMMMM#######################
|
||||||
|
###################MMMMMMMMMMMMMMMMMMMMMMMMMMs ymNMMMMMNm. NMMMMMMMMMMMMMMMMMMMMMMMM#######################
|
||||||
|
###################MMMMMMMMMMMMMMMMMMMMMMMMMMy `-/-` .MMMMMMMMMMMMMMMMMMMMMMMMM#######################
|
||||||
|
###################MMMMMMMMMMMMMMMMMMMMMMMMMMo .NMMMMMMMMMMMMMMMMMMMMMMMM#######################
|
||||||
|
###################MMMMMMMMMMMMMMMMMMMMMMNh+. :sdMMMMMMMMMMMMMMMMMMMMM#######################
|
||||||
|
###################MMMMMMMMMMMMMMMMhso+:. `-/+syMMMMMMMMMMMMMMM#######################
|
||||||
|
###################MMMMMMMMMMMMMMMM- dMMMMMMMMMMMMMM#######################
|
||||||
|
###################MMMMMMMMMMMMMMMM` `.:+/. `/s+:. sMMMMMMMMMMMMMM#######################
|
||||||
|
###################MMMMMMMMMMMMMMNo -oms. .//-` `:/:` `+md+` .hMMMMMMMMMMMMM#######################
|
||||||
|
###################MMMMMMMMMMMMNs` .odNdo. .ohmd+` :dMMMMMMMMMMM#######################
|
||||||
|
###################MMMMMMMMMMNo` .. .- :hMMMMMMMMM#######################
|
||||||
|
###################MMMMMMMMd+` -sNMMMMMM#######################
|
||||||
|
###################MMMMMNs- `.. `/-. `+dMMMM#######################
|
||||||
|
###################MMNy: ./sdNMMMh: `sNMMMNds/. .odM#######################
|
||||||
|
###################M+ :ymMMMMMMMMMMh. +NMMMMMMMMMMmo- /#######################
|
||||||
|
###################MMh: .sNMMMMMMMMMMMMMMN- `hMMMMMMMMMMMMMMMm+` :hM#######################
|
||||||
|
###################MMMMd:` ``-:+shmMMMMMMMMMMMMMMMMMMN. hMMMMMMMMMMMMMMMMMMMmhs+/-..``````./dMMM#######################
|
||||||
|
###################MMMMMMMMNNNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMo .MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM#######################
|
||||||
|
###################MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMy .MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM#######################
|
||||||
|
###################MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN. /MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM#######################
|
||||||
|
###################MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN+` `+NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM#######################
|
||||||
|
###################MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNs. -hMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM#######################
|
||||||
|
###################MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMdyymMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM#######################
|
||||||
|
Loading…
Reference in New Issue
Block a user