紹介した漫画自炊用マクロも増えてきて、だんだんどれがどれだかわからなくなってきました。
この記事では、私が最前線で使用しているおすすめ漫画自炊用マクロを6つだけ厳選して紹介します!
1. 画像処理はこれひとつ!
解像度変更、コントラスト変更などの、よく使う画像処理をまとめてやっちゃう!
漫画自炊の超基本マクロ!
2. スキャン後の自動フォルダ分け!
いちいちフォルダ作るのはメンドイ!
フォルダ作成から収納までぜんぶオートで!
3. 表紙カバーの切り取り!
表紙カバーはちょん切らない!
処理でちゃちゃっとクロップ!
4. 縦線が出にくくなるスキャン方法!
縦線防止の「表向きスキャン+裏向きスキャン統合法」!
普通にやると統合が大変だけど、マクロなら簡単に合体!
5. ファイル名のリネーム!
地味に掲載を忘れてたやつ!
ファイル名を間違った時の修正に便利!
裏向きスキャンを表向きの番号に直す時にも使える!
( [Reverse Order] にチェック!)
//FileRename_andCopy.txt
version = "2.2.3";
print("");
print("FileRename_andCopy");
print("ver",version);
//Do something for selected folder
showMessage("Select Open Folder");
openDir=getDirectory("Choose a Directory");
print("Processing :",openDir);
selectWindow("Log");
showMessage("Select Save Folder");
saveDir=getDirectory("Choose a Directory");
print("Save to :",saveDir);
selectWindow("Log");
list=getFileList(openDir);
wait(1000);
//Dialog
Dialog.create("Processing setting");
Dialog.addString("newTitle (e.g. BORUTO_11)","BORUTO_11");
Dialog.addNumber("Start Number",1);
Dialog.addNumber("digit of newIndex",4);
Dialog.addCheckbox("Reverse order",false);
Dialog.show;
newTitle = Dialog.getString();
startNumber = Dialog.getNumber();
digit = Dialog.getNumber();
order = Dialog.getCheckbox();
//make parentDirectory
parentDir=saveDir+"postProc_"+getTimeStamp()+"/";
File.makeDirectory(parentDir);
subDir = parentDir+newTitle+"/";
if(!File.exists(subDir)){
File.makeDirectory(subDir);
}
Table.create("Correspondence Table");
//operation
startTime=whatTimeNow();
if(order == false){
for (i=0; i<list.length;i++){
name=list[i];
dotIndex = lastIndexOf(name,".");
ext = substring(name,dotIndex);
newname = newTitle+"_"+zeroPad(startNumber,digit)+ext;
//Output table
Table.set("index",i,i);
Table.set("Original",i,name);
Table.set("Newname",i,newname);
//Progress.the second decimal place by 10000/100
print(i+1,"/",list.length,"...Progress=",floor((i+1)/list.length*10000)/100,"%");
File.copy(openDir+name,subDir+newname);
print("Copy to...",subDir+newname);
startNumber++;
}
}else if(order == true){
current = list.length-1;
for (i=0; i<list.length;i++){
name=list[current];
dotIndex = lastIndexOf(name,".");
ext = substring(name,dotIndex);
newname = newTitle+"_"+zeroPad(startNumber,digit)+ext;
//Output table
Table.set("index",i,i);
Table.set("Original",i,name);
Table.set("Newname",i,newname);
//Progress.the second decimal place by 10000/100
print(i+1,"/",list.length,"...Progress=",floor((i+1)/list.length*10000)/100,"%");
File.copy(openDir+name,subDir+newname);
print("Copy to...",subDir+newname);
startNumber++;
current--;
}
}
//fin
Table.update;
finishTime=whatTimeNow();
print("Start Time.... ",startTime);
print("FinishTime... ",finishTime);
print("oshimai");
//-----------------------------------------------------------------------------
//Define function getTimeStamp
function getTimeStamp(){
getDateAndTime(year,month,dayOfWeek,dayOfMonth,hour,minute,second,msec);
timeStamp="string";
strYear=""+year;
month=month+1;
if(month<10){
strMonth="0"+month;
}else{
strMonth=""+month;
}
if(dayOfMonth<10){
strDayOfMonth="0"+dayOfMonth;
}else{
strDayOfMonth=""+dayOfMonth;
}
if(hour<10){
strHour="0"+hour;
}else{
strHour=""+hour;
}
if(minute<10){
strMinute="0"+minute;
}else{
strMinute=""+minute;
}
if(second<10){
strSecond="0"+second;
}else{
strSecond=""+second;
}
timeStamp=strYear+strMonth+strDayOfMonth+"_"+strHour+strMinute+strSecond;
return timeStamp;
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//Define function whatTimeNow
function whatTimeNow(){
getDateAndTime(year,month,dayOfWeek,dayOfMonth,hour,minute,second,msec);
stringTime="string";
strYear=""+year;
month=month+1;
if(month<10){
strMonth="0"+month;
}else{
strMonth=""+month;
}
if(dayOfMonth<10){
strDayOfMonth="0"+dayOfMonth;
}else{
strDayOfMonth=""+dayOfMonth;
}
if(hour<10){
strHour="0"+hour;
}else{
strHour=""+hour;
}
if(minute<10){
strMinute="0"+minute;
}else{
strMinute=""+minute;
}
if(second<10){
strSecond="0"+second;
}else{
strSecond=""+second;
}
stringTime=strYear+"/"+strMonth+"/"+strDayOfMonth+"_"+strHour+":"+strMinute+":"+strSecond;
return stringTime;
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//Define function zeroPadding
function zeroPad(int,digitZeroPad){
if(int < 0){
exit("ZeroPadding Error!! int<0");
}
stringInt = ""+int;
digitStringInt = lengthOf(stringInt);
digitSubtra = digitZeroPad-digitStringInt;
if(digitSubtra < 0){
exit("ZeroPadding Error!! digitSubtra<0");
}
if(digitZeroPad > 0){
for(i=0; i<digitSubtra; i++){
stringInt = "0"+stringInt;
}
}
return stringInt;
}
//-----------------------------------------------------------------------------
/
6. やっかいな縦線を補正!
これを使えば縦線ノイズはとりあえずなんとかなる! (2022/02/23 追記)
おしまい