» »

Avtomatski CROP za fotografijo

Avtomatski CROP za fotografijo

cegu ::

Imam opravka z fotografijami ki so dolge a ozke. Rad bi jih natisnil na več A4 strani tako, da bi bila širina točno širina A4 papirja.

Kako bi to storil najlažje?

Torej, kako naj razrežem fotografijo na več delov tako, da bo 'št. pik po širini' * 'št.pik po višini' ravno A4, da te slike odreže in jih shrani posamezno?

black ice ::

IrfanView + skripta. Klik

cegu ::

Hvala lepa, sem ustvaril skripto in deluje.

Slike (moje so ozka in visoke) razreže na A aspect ratio, pokončno in ležeče. Da se mu na začetku povedati, ali naj bo to A4, A5 ali A3 in tudi koliko naj se naslednja slika prekriva s prejšnjo.

Ena težava ki jo imam notri je, da delam s slikami na disku e:, irfan view je pa na c:. Zato moram notri večkrat izvesti ukaz c:, kar pa ni dobro, saj imam na začetku programa zapisano lokacijo programa (torej če bi kdo drug imel v e-ju, bi moral spremeniti 3 parametre).

 Rezalnik - screenshot

Rezalnik - screenshot




:: Navodila: sliko daj v isto datoteko kot je batch.fajl. Samo ena fotka je lahko zraven. Ta jo bo razrezal na vec delov za print.
:: Najvecja stevilka v cmd (int) je lahko 2147483647
:: Brez decimalnih številk

@echo off


:: Za koliko % naj bo velikost manjša od A4 (tezava s tiskanjem do roba).
	SET /P odrobu=Vnesi velikost v odstotkih (100 je A4, 141 je A3, 71 za A5)
	echo Velikost bo %odrobu% napram A4.
	
:: Za koliko pik naj se slike prekrivajo
	SET /P prekrivanje=Vnesi stevilo pikslov za prekrivanje (0 brez prekrivanja)
	echo Prekrivanje bo %prekrivanje% pikslov.

:: Lokacija programa Irfan View
	set iview="C:\Program Files (x86)\IrfanView\"
	
:: Kam naj zapise zacasno datoteko (nepomembno za uporabnika)
	set IWinfo=%temp%\IWinfo.txt
	
:: Lokacija slike - naj bo v isti mapi kot batch fajl. in naj bo samo ena!

:: Lokacija novih slik
	cd "%~dp0"
	if not exist Pokoncno mkdir Pokoncno
	if not exist Lezece mkdir Lezece


::------- Pridobivanje informacije o sirini in visini -------
:: Zapiši začano info datoteko od slike, ki je zraven batch fajla. dp0 pove lokacijo, kjer je batch fajl
	c:
	cd %iview%
	i_view32.exe %~dp0\*.jpg /info=%IWinfo%

:: Poisci sirino in visino ter ju shrani v spremenljivki 'width' in 'height'
	for /f "tokens=4,6" %%a IN ('type %IWinfo% ^| find "Image dimensions"') do (set /a width=%%a) & (set /a height=%%b)

::Definicija za A standard - aspect ratio. 
	set /a pocez=841
	set /a podolgem=1189

::ker nimam decimalnih stevilk, uporabim ta trik (napaka ~1 piksel)
	set /a natancnost=2000

::---POKONCNO
::izracun stevilo pikslov po višini (da bo ratio 841*1189, A pokoncno)
	set /a visina_pokoncno = %podolgem% * %natancnost% / %pocez% * %width%
	set /a visina_pokoncno = %visina_pokoncno% / %natancnost%

::izracun potrebnega DPI-ja, da fotka ravno pride na A4 pokoncno - brez izgub (za A3 je treba to premodificirati - 8.3 je širina v inčih za A4).
	set /a dpi = %width% * 100000
	set /a dpi = %dpi% / 83
	set /a dpi = %dpi% / %odrobu% * 100
	set /a dpi = %dpi% / 10000

	
::---LEZECE
::izracun stevilo pikslov po višini (da bo ratio 841*1189, A lezece)
	set /a visina_lezece = %pocez% * %natancnost% / %podolgem% * %width%
	set /a visina_lezece = %visina_lezece% / %natancnost%

::izracun potrebnega DPI-ja, da fotka ravno pride na A4 lezece 11.7 je višina v inčih za A4).
	set /a dpiL = %width% * 100000
	set /a dpiL = %dpiL% / 117
	set /a dpiL = %dpiL% / %odrobu% * 100
	set /a dpiL = %dpiL% / 10000

:: rezanje

	
	c:
	cd %iview%

	set /a x2 = 0
	:while1
		if %x2% leq %height% (
			set /a x2 = x2 + %visina_lezece% - %prekrivanje%
			i_view32.exe "%~dp0\*.jpg /crop=(0,%x2%,%width%,%visina_lezece%) /dpi=(%dpiL%,%dpiL%) /convert=Lezece\Lezece_%x2%.jpg"
			echo Lezece_%x2%.jpg naredil.
			goto :while1
    )	
	
	set /a x = 0
	:while2
		if %x% leq %height% (
			set /a x = x + %visina_pokoncno% - %prekrivanje%
			i_view32.exe "%~dp0\*.jpg /crop=(0,%x%,%width%,%visina_pokoncno%) /dpi=(%dpi%,%dpi%) /convert=Pokoncno\Pokoncno_%x%.jpg"
			echo Pokoncno_%x%.jpg naredil.
			goto :while2
    )


:: izbrisi zacasno datoteko
	if exist %IWinfo% del %IWinfo%
	
::pause



Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

batch fajl iz txt (strani: 1 2 )

Oddelek: Programiranje
659499 (8160) b3D_950
»

Applova prireditev na voljo v živo prek spleta

Oddelek: Novice / Apple iPhone/iPad/iPod
4011342 (9861) kpkp
»

[bat datoteke] Trenutni datum in ura

Oddelek: Programiranje
112454 (2211) darkolord
»

včerajšni datum

Oddelek: Programiranje
81128 (1006) ql000
»

Ime Priimek v Ime_Priimek (strani: 1 2 )

Oddelek: Programska oprema
554898 (3858) Doman

Več podobnih tem