Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: this_feature_currently_requires_accessing_site_using_safari
In eigener Sache!
Liebe Mitglieder, liebe Besucher und Gäste
ich weiß, es ist ein leidiges Thema, aber ich muss es ansprechen: Werbung, Werbeblocker und Finanzierung des Forums.
Bitte hier weiterlesen ...
Am 25. 10. 2007 um 19:50 machte mich im Dforum die Frage, wie das denn wohl zu schaffen sei, verbunden mit einem Link auf genau dieses Bild bei der FC, auf Dich und den Illustil aufmerksam - nach langem Suchen stieß ich dann endlich auf diesen irren Thread.Für alle von euch die von meinen Bildern noch nicht die Nase voll haben:
http://www.flickr.com/photo_zoom.gne?id=2202599374&size=o&context=set-72157603454033464
Also, ran an den Speck.
Gruss,
Udo
Ich habe ein dunkles Rot als Vollton dahinter gelegt und dann gemalt - offensichtlich nicht gründlich genug - ich wollte nur das Holz ein wenig vom Grau befreien.Reiner hasst du da zuviel am Rotkanal gedreht??
Bildgröße | Karos | Zeit_PSmax | Zeit_PSmin
--------------------------------------------
666x1000 | 70 | 1m13s | 16s
1000x1500 | 140 | 2m40s | 31s
2000x3000 | 532 | 13m37s | 2m00s
4000x6000 | 2035 | | 8m59s
[SIZE="1"][COLOR="Green"]/*
Version : 3.0.2 (19.01.2008)
Autor : mariane
Kontakt : www.dslr-forum.de/member.php?u=17936
Dieses Script kopiert auf eine Ebene reduziert und wendet
dann den Kornfilter (im Modus anisotrop) an. Unter normalen
Umständen entsteht ein störendes Gitter beim Korneffekt;
dieses Script verhindert dies.
Das Script sollte im ExtendScript Toolkit geöffnet und von dort
aus gestartet werden nachdem zuvor Photoshop minimiert
wurde. Eine Akualisierung von Histogramm-, Paletten- und
Bildschirmaktuallisierung wird dadurch vermieden und das
Script wird um den Faktor 5 schneller abgearbeitet.
*/[/COLOR]
[COLOR="Olive"]#target photoshop[/COLOR]
[COLOR="Blue"]if [/COLOR]( !app.documents.length > 0 ) {
app.bringToFront();
alert( [COLOR="DarkRed"]"Kein Bild geöffnet!"[/COLOR] );
}[COLOR="Blue"]else[/COLOR]{
[COLOR="Green"]//--- Initialisieren -------------------------------------------------------------[/COLOR]
[COLOR="Blue"]var [/COLOR]startRulerUnits = app.preferences.rulerUnits;
[COLOR="Blue"]var [/COLOR]startTypeUnits = app.preferences.typeUnits;
[COLOR="Blue"]var [/COLOR]startDisplayDialogs = app.displayDialogs;
app.preferences.rulerUnits = Units.PIXELS;
app.preferences.typeUnits = TypeUnits.PIXELS;
app.displayDialogs = DialogModes.NO;
[COLOR="Green"]//--- Dokument ---------------------------------------------------------------[/COLOR]
[COLOR="Blue"]var [/COLOR]docRef0 = app.activeDocument;
[COLOR="Blue"]var [/COLOR]docBreite = docRef0.width;
[COLOR="Blue"]var [/COLOR]docHoehe = docRef0.height;
[COLOR="Green"]//--- Ebene erstellen --------------------------------------------------------[/COLOR]
[COLOR="Blue"]var [/COLOR]layer0=docRef0.artLayers.add();
layer0.name=[COLOR="DarkRed"]"Korneffekt"[/COLOR];
[COLOR="Green"]//--- auf eine Ebene reduziert kopieren --------------------------------[/COLOR]
docRef0.selection.selectAll();
docRef0.selection.copy( [COLOR="Blue"]true [/COLOR]);
[COLOR="Green"]//--- neues Dokument erstellen ------------------------------------------[/COLOR]
[COLOR="Blue"]var [/COLOR]karo = 150;
[COLOR="Blue"]var [/COLOR]cute = 20;
[COLOR="Blue"]var [/COLOR]breite = docBreite + 2*cute;
[COLOR="Blue"]var [/COLOR]hoehe = docHoehe + 2*cute;
[COLOR="Blue"]var [/COLOR]docRef1 = app.documents.add( docBreite, docHoehe, docRef0.resolution, [COLOR="DarkRed"]"Temp"[/COLOR] );
[COLOR="Green"]//--- einfügen und auf eine Ebene reduzieren -----------------------
[/COLOR]docRef1.paste();
docRef1.flatten();
[COLOR="Green"]//--- Arbeitsfläche erweitern -----------------------------------------------[/COLOR]
docRef1.resizeCanvas(breite, hoehe, AnchorPosition.MIDDLECENTER );
docRef1.resizeCanvas( breite+karo, hoehe+karo, AnchorPosition.TOPLEFT );
[COLOR="Green"]//--- 2 neue Ebenen ---------------------------------------------------------
[/COLOR][COLOR="Blue"]var [/COLOR]layer2=docRef1.artLayers.add();
[COLOR="Blue"]var [/COLOR]layer3=docRef1.artLayers.add();
[COLOR="Green"]//--- history bereinigen initiallisieren ------------------------------------
[/COLOR][COLOR="Blue"]var [/COLOR]history_par = [COLOR="Blue"]new [/COLOR]ActionDescriptor();
[COLOR="Blue"]var [/COLOR]history_ref = [COLOR="Blue"]new [/COLOR]ActionReference();
[COLOR="Blue"]var [/COLOR]history_clear = stringIDToTypeID( [COLOR="DarkRed"]"clearEvent"[/COLOR] );
[COLOR="Blue"]var [/COLOR]par1 = stringIDToTypeID( [COLOR="DarkRed"]"null"[/COLOR] );
[COLOR="Blue"]var [/COLOR]par2 = stringIDToTypeID( [COLOR="DarkRed"]"property"[/COLOR] );
[COLOR="Blue"]var [/COLOR]par3 = stringIDToTypeID( [COLOR="DarkRed"]"historyStates"[/COLOR] );
[COLOR="Blue"]var [/COLOR]par4 = stringIDToTypeID([COLOR="DarkRed"] "document" [/COLOR]);
[COLOR="Blue"]var [/COLOR]par5 = stringIDToTypeID( [COLOR="DarkRed"]"ordinal" [/COLOR]);
[COLOR="Blue"]var [/COLOR]par6 = stringIDToTypeID( [COLOR="DarkRed"]"targetEnum"[/COLOR] );
history_ref.putProperty( par2, par3 );
history_ref.putEnumerated( par4, par5, par6 );
history_par.putReference( par1, history_ref );
[COLOR="Blue"]var [/COLOR]clear_history = [COLOR="Blue"]function[/COLOR](){
executeAction( history_clear, history_par, DialogModes.NO );
} [COLOR="Green"]// end function
//--- Kornfilter anisotrop initiallisieren ----------------------------------
[/COLOR][COLOR="Blue"]var [/COLOR]parameter = [COLOR="Blue"]new [/COLOR]ActionDescriptor();
[COLOR="Blue"]var [/COLOR]diffuse = stringIDToTypeID( [COLOR="DarkRed"]"diffuse"[/COLOR] );
par1 = stringIDToTypeID( [COLOR="DarkRed"]"mode"[/COLOR] );
par2 = stringIDToTypeID( [COLOR="DarkRed"]"diffuseMode"[/COLOR] );
par3 = stringIDToTypeID( [COLOR="DarkRed"]"anisotropic"[/COLOR] );
parameter.putEnumerated( par1, par2, par3 );
[COLOR="Blue"]var [/COLOR]Kornfilter = [COLOR="Blue"]function[/COLOR](){
executeAction( diffuse, parameter, DialogModes.NO );
} [COLOR="Green"]// end function
//--- Fortschrittsbalken initialisieren -------------------------------------
[/COLOR][COLOR="Blue"]var [/COLOR]i =0;
[COLOR="Blue"]var [/COLOR]time = 0;
[COLOR="Blue"]var [/COLOR]minute;
[COLOR="Blue"]var [/COLOR]sekunde;
[COLOR="Blue"]var [/COLOR]max = Math.ceil(hoehe/(karo-cute*2))*[COLOR="DarkRed"]Math[/COLOR].ceil(breite/(karo-cute*2));
[COLOR="Blue"]var [/COLOR]progressWindow = createProgressWindow([COLOR="DarkRed"]" bitte warten..."[/COLOR], 0, max, [COLOR="Blue"]true[/COLOR]);
progressWindow.isDone = [COLOR="Blue"]false[/COLOR];
progressWindow.onCancel = [COLOR="Blue"]function[/COLOR]() {
[COLOR="Blue"]this[/COLOR].isDone = [COLOR="Blue"]true[/COLOR];
[COLOR="Blue"]return [/COLOR][COLOR="Blue"]true[/COLOR]; [COLOR="Green"] // return 'true' to close the window[/COLOR]
} [COLOR="Green"]// end function[/COLOR]
[COLOR="Blue"]var [/COLOR]Bar = [COLOR="Blue"]function[/COLOR]( var1, var2 ){
minute = [COLOR="DarkRed"]Math[/COLOR].floor(var1/var2*(max-var2)/60);
sekunde = [COLOR="DarkRed"]Math[/COLOR].floor(var1/var2*(max-var2))-minute*60
[COLOR="Blue"]if[/COLOR](sekunde==60){
sekunde=[COLOR="DarkRed"]"00"[/COLOR];
minute++;
}[COLOR="Blue"]else[/COLOR]{
[COLOR="Blue"]if[/COLOR](sekunde<10){
sekunde=[COLOR="DarkRed"]"0"[/COLOR] + sekunde;
} [COLOR="Green"]// end if[/COLOR]
} [COLOR="Green"]// end if[/COLOR]
progressWindow.text = ([COLOR="DarkRed"]" bitte warten... "[/COLOR] + minute + [COLOR="DarkRed"]"min "[/COLOR] + sekunde + [COLOR="DarkRed"]"s Ø="[/COLOR] + ( var1/var2+ [COLOR="DarkRed"]"000"[/COLOR] ).toString().substr(0, 5) +[COLOR="DarkRed"]"s noch "[/COLOR] + (max-var2) + [COLOR="DarkRed"]" von "[/COLOR] + max);
} [COLOR="Green"]// end function[/COLOR]
[COLOR="Blue"]try [/COLOR]{
[COLOR="Green"]//--- hier gehts rechenintensiv los -----------------------------------
[/COLOR][COLOR="Blue"]for [/COLOR]( [COLOR="Blue"]var [/COLOR]yi=0; yi < hoehe; yi+=karo-cute*2 ){
[COLOR="Blue"]for [/COLOR]( [COLOR="Blue"]var [/COLOR]xi=0; xi < breite; xi+=karo-cute*2 ){
[COLOR="Blue"]var [/COLOR]t1 = [COLOR="Blue"]new [/COLOR][COLOR="DarkRed"]Date[/COLOR]();
if (progressWindow.isDone) {
[COLOR="Blue"]break[/COLOR];
} [COLOR="Green"]// end if[/COLOR]
progressWindow.updateProgress(i);
[COLOR="Blue"]var [/COLOR]HistoryState = docRef1.activeHistoryState;
[COLOR="Green"]//--- karo auswählen und kopieren -------------------------
[/COLOR]activeDocument.crop(
[COLOR="Blue"]new [/COLOR][COLOR="DarkRed"]Array[/COLOR]( xi, yi, xi+karo, yi+karo ) );
[COLOR="Green"]//--- Filter anwenden --------------------------------------------
[/COLOR]docRef1.flatten();
Kornfilter();
[COLOR="Green"]//--- mit verkleinerte Auswahl kopieren --------------------
[/COLOR]docRef1.selection.select(
Auswahl( cute, cute, karo-cute, karo-cute ),
SelectionType.REPLACE );
docRef1.selection.copy();
[COLOR="Green"]//--- Protokol vor "karo auswählen" setzen ----------------[/COLOR]
docRef1.activeHistoryState=HistoryState;
[COLOR="Green"]//--- in verkleinerter Auswahl einfügen ---------------------[/COLOR]
docRef1.selection.select(
Auswahl( xi+cute, yi+cute, xi-cute+karo, yi-cute+karo ),
SelectionType.REPLACE );
layer2.visible=[COLOR="Blue"]true[/COLOR];
docRef1.paste();
docRef1.activeLayer.merge();[COLOR="Green"] // Ebene reduzieren[/COLOR]
layer2.visible=[COLOR="Blue"]false[/COLOR];
clear_history();
[COLOR="Green"]//---[/COLOR]
i++;
time += ([COLOR="Blue"]new [/COLOR][COLOR="DarkRed"]Date[/COLOR]()-t1)/1000;
Bar( time, i );
} [COLOR="Green"]// end for[/COLOR]
} [COLOR="Green"]// end for[/COLOR]
} [COLOR="Blue"]catch [/COLOR](e) {
alert(e);
} [COLOR="Blue"]finally [/COLOR]{
progressWindow.close();
} [COLOR="Green"]// end try[/COLOR]
layer2.visible=[COLOR="Blue"]true[/COLOR];
[COLOR="Green"]//--- ursprüngliche Dokumentgröße wiederherstellen -------------
[/COLOR]docRef1.resizeCanvas( breite, hoehe, AnchorPosition.TOPLEFT );
docRef1.resizeCanvas( docBreite, docHoehe, AnchorPosition.MIDDLECENTER );
[COLOR="Green"]//--- kopieren, Temp-Dokument schließen ---------------------------
[/COLOR]docRef1.flatten();
docRef1.selection.selectAll();
docRef1.selection.copy();
docRef1.close( SaveOptions.DONOTSAVECHANGES );
[COLOR="Green"]//--- Ergebnis einfügen -----------------------------------------------------
[/COLOR]app.activeDocument = docRef0;
docRef0.paste();
[COLOR="Green"]//--- reinitialisieren -----------------------------------------------------------
[/COLOR]docRef0=[COLOR="Blue"]null[/COLOR];
docRef1=[COLOR="Blue"]null[/COLOR];
app.preferences.rulerUnits = startRulerUnits;
app.preferences.typeUnits = startTypeUnits;
app.displayDialogs = startDisplayDialogs;
app.bringToFront();
}[COLOR="Green"] // end if
//--- Array mit Auswahlkoordinaten erstellen -----------------------------[/COLOR]
[COLOR="Blue"]function [/COLOR]Auswahl( x0, y0, x1, y1 ){
[COLOR="Blue"]return [/COLOR][COLOR="Blue"]new [/COLOR][COLOR="DarkRed"]Array[/COLOR](
[COLOR="Blue"]new [/COLOR][COLOR="DarkRed"]Array[/COLOR]( x0, y0 ),
[COLOR="Blue"]new [/COLOR][COLOR="DarkRed"]Array[/COLOR]( x1, y0 ),
[COLOR="Blue"]new [/COLOR][COLOR="DarkRed"]Array[/COLOR]( x1, y1 ),
[COLOR="Blue"]new [/COLOR][COLOR="DarkRed"]Array[/COLOR]( x0, y1 )
);
}
[COLOR="Green"]/* createProgressWindow
title the window title
min the minimum value for the progress bar
max the maximum value for the progress bar
parent the parent ScriptUI window (opt)
useCancel flag for having a Cancel button (opt)
onCancel This method will be called when the Cancel button is pressed.
This method should return 'true' to close the progress window
*/[/COLOR]
[COLOR="Blue"]function [/COLOR]createProgressWindow(title, min, max, parent, useCancel) {
[COLOR="Blue"]var [/COLOR]win = [COLOR="Blue"]new [/COLOR]Window([COLOR="Purple"]'palette'[/COLOR], title);
win.bar = win.add([COLOR="Purple"]'progressbar'[/COLOR], undefined, min, max);
win.bar.preferredSize = [400, 20];
win.parent = undefined;
[COLOR="Blue"]if [/COLOR](parent) {
[COLOR="Blue"]if [/COLOR](parent [COLOR="Blue"]instanceof [/COLOR]Window) {
win.parent = parent;
} [COLOR="Blue"]else if[/COLOR] (useCancel == undefined) {
useCancel = parent;
} [COLOR="Green"]// end if[/COLOR]
}[COLOR="Green"] // end if[/COLOR]
[COLOR="Blue"]if [/COLOR](useCancel) {
win.cancel = win.add([COLOR="Purple"]'button'[/COLOR], undefined, [COLOR="Purple"]'Abbrechen'[/COLOR]);
win.cancel.onClick = [COLOR="Blue"]function[/COLOR]() {
[COLOR="Blue"]try [/COLOR]{
[COLOR="Blue"]if [/COLOR](win.onCancel) {
[COLOR="Blue"]var [/COLOR]rc = win.onCancel();
[COLOR="Blue"]if [/COLOR](rc || rc == undefined) {
win.close();
} [COLOR="Green"]// end if[/COLOR]
} [COLOR="Blue"]else [/COLOR]{
win.close();
} [COLOR="Green"]// end if[/COLOR]
} [COLOR="Blue"]catch [/COLOR](e) {
alert(e);
} [COLOR="Green"]// end try[/COLOR]
} [COLOR="Green"]// end function[/COLOR]
} [COLOR="Green"]// end if[/COLOR]
win.updateProgress = [COLOR="Blue"]function[/COLOR](val) {
[COLOR="Blue"]var [/COLOR]win = [COLOR="Blue"]this[/COLOR];
win.bar.value = val;
[COLOR="Green"] // recenter the progressWindow if desired
// win.center(win.parent);[/COLOR]
win.show();
} [COLOR="Green"]// end function[/COLOR]
win.center(win.parent);
[COLOR="Blue"]return [/COLOR]win;
}; [/SIZE]
Hallo ihr lieben, ich habe nochmal mein Script zur Vermeidung des störenden Gitters beim Korneffekt überarbeitet. Es läuft jetzt etwas schneller durch, zeigt den aktuellen Fortschritt an und kann jederzeit abgebrochen werden. Ich empfehle das Script für die finale Bearbeitung, zum üben und erarbeitet von Techniken ist es noch zu zeitintensiv. Untenstehen Tabelle zeigt was meine lahme Kiste noch bringt (Ultraalt-Singel-Core Pentium 3,4 mit 2GB RAM):
Korneffekt-anisotrop-Benchmark
Karos sind die Kleines Stückchen in die das Bild zerlegt wird, Zeit_PSmax ist die benötigte Zeit wenn Photoshop normal maximiert am Bildschirm präsent ist, Teit_PSmin das äquivalent dazu wenn Photoshop in die Tastkleiste minimiert wird bevor das Script im ExtendScript Toolkit ausgeführt wird.Code:Bildgröße | Karos | Zeit_PSmax | Zeit_PSmin -------------------------------------------- 666x1000 | 70 | 1m13s | 16s 1000x1500 | 140 | 2m40s | 31s 2000x3000 | 532 | 13m37s | 2m00s 4000x6000 | 2035 | | 8m59s
Untere letzterer Bedingung läuft das Script also deutlich schneller ab, wie man sehen kann.
Code:[SIZE="1"][COLOR="Green"]/* Version : 3.0.2 (19.01.2008) Autor : mariane Kontakt : www.dslr-forum.de/member.php?u=17936 Dieses Script kopiert auf eine Ebene reduziert und wendet dann den Kornfilter (im Modus anisotrop) an. Unter normalen Umständen entsteht ein störendes Gitter beim Korneffekt; dieses Script verhindert dies. Das Script sollte im ExtendScript Toolkit geöffnet und von dort aus gestartet werden nachdem zuvor Photoshop minimiert wurde. Eine Akualisierung von Histogramm-, Paletten- und Bildschirmaktuallisierung wird dadurch vermieden und das Script wird um den Faktor 5 schneller abgearbeitet. */[/COLOR] [COLOR="Olive"]#target photoshop[/COLOR] [COLOR="Blue"]if [/COLOR]( !app.documents.length > 0 ) { app.bringToFront(); alert( [COLOR="DarkRed"]"Kein Bild geöffnet!"[/COLOR] ); }[COLOR="Blue"]else[/COLOR]{ [COLOR="Green"]//--- Initialisieren -------------------------------------------------------------[/COLOR] [COLOR="Blue"]var [/COLOR]startRulerUnits = app.preferences.rulerUnits; [COLOR="Blue"]var [/COLOR]startTypeUnits = app.preferences.typeUnits; [COLOR="Blue"]var [/COLOR]startDisplayDialogs = app.displayDialogs; app.preferences.rulerUnits = Units.PIXELS; app.preferences.typeUnits = TypeUnits.PIXELS; app.displayDialogs = DialogModes.NO; [COLOR="Green"]//--- Dokument ---------------------------------------------------------------[/COLOR] [COLOR="Blue"]var [/COLOR]docRef0 = app.activeDocument; [COLOR="Blue"]var [/COLOR]docBreite = docRef0.width; [COLOR="Blue"]var [/COLOR]docHoehe = docRef0.height; [COLOR="Green"]//--- Ebene erstellen --------------------------------------------------------[/COLOR] [COLOR="Blue"]var [/COLOR]layer0=docRef0.artLayers.add(); layer0.name=[COLOR="DarkRed"]"Korneffekt"[/COLOR]; [COLOR="Green"]//--- auf eine Ebene reduziert kopieren --------------------------------[/COLOR] docRef0.selection.selectAll(); docRef0.selection.copy( [COLOR="Blue"]true [/COLOR]); [COLOR="Green"]//--- neues Dokument erstellen ------------------------------------------[/COLOR] [COLOR="Blue"]var [/COLOR]karo = 150; [COLOR="Blue"]var [/COLOR]cute = 20; [COLOR="Blue"]var [/COLOR]breite = docBreite + 2*cute; [COLOR="Blue"]var [/COLOR]hoehe = docHoehe + 2*cute; [COLOR="Blue"]var [/COLOR]docRef1 = app.documents.add( docBreite, docHoehe, docRef0.resolution, [COLOR="DarkRed"]"Temp"[/COLOR] ); [COLOR="Green"]//--- einfügen und auf eine Ebene reduzieren ----------------------- [/COLOR]docRef1.paste(); docRef1.flatten(); [COLOR="Green"]//--- Arbeitsfläche erweitern -----------------------------------------------[/COLOR] docRef1.resizeCanvas(breite, hoehe, AnchorPosition.MIDDLECENTER ); docRef1.resizeCanvas( breite+karo, hoehe+karo, AnchorPosition.TOPLEFT ); [COLOR="Green"]//--- 2 neue Ebenen --------------------------------------------------------- [/COLOR][COLOR="Blue"]var [/COLOR]layer2=docRef1.artLayers.add(); [COLOR="Blue"]var [/COLOR]layer3=docRef1.artLayers.add(); [COLOR="Green"]//--- history bereinigen initiallisieren ------------------------------------ [/COLOR][COLOR="Blue"]var [/COLOR]history_par = [COLOR="Blue"]new [/COLOR]ActionDescriptor(); [COLOR="Blue"]var [/COLOR]history_ref = [COLOR="Blue"]new [/COLOR]ActionReference(); [COLOR="Blue"]var [/COLOR]history_clear = stringIDToTypeID( [COLOR="DarkRed"]"clearEvent"[/COLOR] ); [COLOR="Blue"]var [/COLOR]par1 = stringIDToTypeID( [COLOR="DarkRed"]"null"[/COLOR] ); [COLOR="Blue"]var [/COLOR]par2 = stringIDToTypeID( [COLOR="DarkRed"]"property"[/COLOR] ); [COLOR="Blue"]var [/COLOR]par3 = stringIDToTypeID( [COLOR="DarkRed"]"historyStates"[/COLOR] ); [COLOR="Blue"]var [/COLOR]par4 = stringIDToTypeID([COLOR="DarkRed"] "document" [/COLOR]); [COLOR="Blue"]var [/COLOR]par5 = stringIDToTypeID( [COLOR="DarkRed"]"ordinal" [/COLOR]); [COLOR="Blue"]var [/COLOR]par6 = stringIDToTypeID( [COLOR="DarkRed"]"targetEnum"[/COLOR] ); history_ref.putProperty( par2, par3 ); history_ref.putEnumerated( par4, par5, par6 ); history_par.putReference( par1, history_ref ); [COLOR="Blue"]var [/COLOR]clear_history = [COLOR="Blue"]function[/COLOR](){ executeAction( history_clear, history_par, DialogModes.NO ); } [COLOR="Green"]// end function //--- Kornfilter anisotrop initiallisieren ---------------------------------- [/COLOR][COLOR="Blue"]var [/COLOR]parameter = [COLOR="Blue"]new [/COLOR]ActionDescriptor(); [COLOR="Blue"]var [/COLOR]diffuse = stringIDToTypeID( [COLOR="DarkRed"]"diffuse"[/COLOR] ); par1 = stringIDToTypeID( [COLOR="DarkRed"]"mode"[/COLOR] ); par2 = stringIDToTypeID( [COLOR="DarkRed"]"diffuseMode"[/COLOR] ); par3 = stringIDToTypeID( [COLOR="DarkRed"]"anisotropic"[/COLOR] ); parameter.putEnumerated( par1, par2, par3 ); [COLOR="Blue"]var [/COLOR]Kornfilter = [COLOR="Blue"]function[/COLOR](){ executeAction( diffuse, parameter, DialogModes.NO ); } [COLOR="Green"]// end function //--- Fortschrittsbalken initialisieren ------------------------------------- [/COLOR][COLOR="Blue"]var [/COLOR]i =0; [COLOR="Blue"]var [/COLOR]time = 0; [COLOR="Blue"]var [/COLOR]minute; [COLOR="Blue"]var [/COLOR]sekunde; [COLOR="Blue"]var [/COLOR]max = Math.ceil(hoehe/(karo-cute*2))*[COLOR="DarkRed"]Math[/COLOR].ceil(breite/(karo-cute*2)); [COLOR="Blue"]var [/COLOR]progressWindow = createProgressWindow([COLOR="DarkRed"]" bitte warten..."[/COLOR], 0, max, [COLOR="Blue"]true[/COLOR]); progressWindow.isDone = [COLOR="Blue"]false[/COLOR]; progressWindow.onCancel = [COLOR="Blue"]function[/COLOR]() { [COLOR="Blue"]this[/COLOR].isDone = [COLOR="Blue"]true[/COLOR]; [COLOR="Blue"]return [/COLOR][COLOR="Blue"]true[/COLOR]; [COLOR="Green"] // return 'true' to close the window[/COLOR] } [COLOR="Green"]// end function[/COLOR] [COLOR="Blue"]var [/COLOR]Bar = [COLOR="Blue"]function[/COLOR]( var1, var2 ){ minute = [COLOR="DarkRed"]Math[/COLOR].floor(var1/var2*(max-var2)/60); sekunde = [COLOR="DarkRed"]Math[/COLOR].floor(var1/var2*(max-var2))-minute*60 [COLOR="Blue"]if[/COLOR](sekunde==60){ sekunde=[COLOR="DarkRed"]"00"[/COLOR]; minute++; }[COLOR="Blue"]else[/COLOR]{ [COLOR="Blue"]if[/COLOR](sekunde<10){ sekunde=[COLOR="DarkRed"]"0"[/COLOR] + sekunde; } [COLOR="Green"]// end if[/COLOR] } [COLOR="Green"]// end if[/COLOR] progressWindow.text = ([COLOR="DarkRed"]" bitte warten... "[/COLOR] + minute + [COLOR="DarkRed"]"min "[/COLOR] + sekunde + [COLOR="DarkRed"]"s Ø="[/COLOR] + ( var1/var2+ [COLOR="DarkRed"]"000"[/COLOR] ).toString().substr(0, 5) +[COLOR="DarkRed"]"s noch "[/COLOR] + (max-var2) + [COLOR="DarkRed"]" von "[/COLOR] + max); } [COLOR="Green"]// end function[/COLOR] [COLOR="Blue"]try [/COLOR]{ [COLOR="Green"]//--- hier gehts rechenintensiv los ----------------------------------- [/COLOR][COLOR="Blue"]for [/COLOR]( [COLOR="Blue"]var [/COLOR]yi=0; yi < hoehe; yi+=karo-cute*2 ){ [COLOR="Blue"]for [/COLOR]( [COLOR="Blue"]var [/COLOR]xi=0; xi < breite; xi+=karo-cute*2 ){ [COLOR="Blue"]var [/COLOR]t1 = [COLOR="Blue"]new [/COLOR][COLOR="DarkRed"]Date[/COLOR](); if (progressWindow.isDone) { [COLOR="Blue"]break[/COLOR]; } [COLOR="Green"]// end if[/COLOR] progressWindow.updateProgress(i); [COLOR="Blue"]var [/COLOR]HistoryState = docRef1.activeHistoryState; [COLOR="Green"]//--- karo auswählen und kopieren ------------------------- [/COLOR]activeDocument.crop( [COLOR="Blue"]new [/COLOR][COLOR="DarkRed"]Array[/COLOR]( xi, yi, xi+karo, yi+karo ) ); [COLOR="Green"]//--- Filter anwenden -------------------------------------------- [/COLOR]docRef1.flatten(); Kornfilter(); [COLOR="Green"]//--- mit verkleinerte Auswahl kopieren -------------------- [/COLOR]docRef1.selection.select( Auswahl( cute, cute, karo-cute, karo-cute ), SelectionType.REPLACE ); docRef1.selection.copy(); [COLOR="Green"]//--- Protokol vor "karo auswählen" setzen ----------------[/COLOR] docRef1.activeHistoryState=HistoryState; [COLOR="Green"]//--- in verkleinerter Auswahl einfügen ---------------------[/COLOR] docRef1.selection.select( Auswahl( xi+cute, yi+cute, xi-cute+karo, yi-cute+karo ), SelectionType.REPLACE ); layer2.visible=[COLOR="Blue"]true[/COLOR]; docRef1.paste(); docRef1.activeLayer.merge();[COLOR="Green"] // Ebene reduzieren[/COLOR] layer2.visible=[COLOR="Blue"]false[/COLOR]; clear_history(); [COLOR="Green"]//---[/COLOR] i++; time += ([COLOR="Blue"]new [/COLOR][COLOR="DarkRed"]Date[/COLOR]()-t1)/1000; Bar( time, i ); } [COLOR="Green"]// end for[/COLOR] } [COLOR="Green"]// end for[/COLOR] } [COLOR="Blue"]catch [/COLOR](e) { alert(e); } [COLOR="Blue"]finally [/COLOR]{ progressWindow.close(); } [COLOR="Green"]// end try[/COLOR] layer2.visible=[COLOR="Blue"]true[/COLOR]; [COLOR="Green"]//--- ursprüngliche Dokumentgröße wiederherstellen ------------- [/COLOR]docRef1.resizeCanvas( breite, hoehe, AnchorPosition.TOPLEFT ); docRef1.resizeCanvas( docBreite, docHoehe, AnchorPosition.MIDDLECENTER ); [COLOR="Green"]//--- kopieren, Temp-Dokument schließen --------------------------- [/COLOR]docRef1.flatten(); docRef1.selection.selectAll(); docRef1.selection.copy(); docRef1.close( SaveOptions.DONOTSAVECHANGES ); [COLOR="Green"]//--- Ergebnis einfügen ----------------------------------------------------- [/COLOR]app.activeDocument = docRef0; docRef0.paste(); [COLOR="Green"]//--- reinitialisieren ----------------------------------------------------------- [/COLOR]docRef0=[COLOR="Blue"]null[/COLOR]; docRef1=[COLOR="Blue"]null[/COLOR]; app.preferences.rulerUnits = startRulerUnits; app.preferences.typeUnits = startTypeUnits; app.displayDialogs = startDisplayDialogs; app.bringToFront(); }[COLOR="Green"] // end if //--- Array mit Auswahlkoordinaten erstellen -----------------------------[/COLOR] [COLOR="Blue"]function [/COLOR]Auswahl( x0, y0, x1, y1 ){ [COLOR="Blue"]return [/COLOR][COLOR="Blue"]new [/COLOR][COLOR="DarkRed"]Array[/COLOR]( [COLOR="Blue"]new [/COLOR][COLOR="DarkRed"]Array[/COLOR]( x0, y0 ), [COLOR="Blue"]new [/COLOR][COLOR="DarkRed"]Array[/COLOR]( x1, y0 ), [COLOR="Blue"]new [/COLOR][COLOR="DarkRed"]Array[/COLOR]( x1, y1 ), [COLOR="Blue"]new [/COLOR][COLOR="DarkRed"]Array[/COLOR]( x0, y1 ) ); } [COLOR="Green"]/* createProgressWindow title the window title min the minimum value for the progress bar max the maximum value for the progress bar parent the parent ScriptUI window (opt) useCancel flag for having a Cancel button (opt) onCancel This method will be called when the Cancel button is pressed. This method should return 'true' to close the progress window */[/COLOR] [COLOR="Blue"]function [/COLOR]createProgressWindow(title, min, max, parent, useCancel) { [COLOR="Blue"]var [/COLOR]win = [COLOR="Blue"]new [/COLOR]Window([COLOR="Purple"]'palette'[/COLOR], title); win.bar = win.add([COLOR="Purple"]'progressbar'[/COLOR], undefined, min, max); win.bar.preferredSize = [400, 20]; win.parent = undefined; [COLOR="Blue"]if [/COLOR](parent) { [COLOR="Blue"]if [/COLOR](parent [COLOR="Blue"]instanceof [/COLOR]Window) { win.parent = parent; } [COLOR="Blue"]else if[/COLOR] (useCancel == undefined) { useCancel = parent; } [COLOR="Green"]// end if[/COLOR] }[COLOR="Green"] // end if[/COLOR] [COLOR="Blue"]if [/COLOR](useCancel) { win.cancel = win.add([COLOR="Purple"]'button'[/COLOR], undefined, [COLOR="Purple"]'Abbrechen'[/COLOR]); win.cancel.onClick = [COLOR="Blue"]function[/COLOR]() { [COLOR="Blue"]try [/COLOR]{ [COLOR="Blue"]if [/COLOR](win.onCancel) { [COLOR="Blue"]var [/COLOR]rc = win.onCancel(); [COLOR="Blue"]if [/COLOR](rc || rc == undefined) { win.close(); } [COLOR="Green"]// end if[/COLOR] } [COLOR="Blue"]else [/COLOR]{ win.close(); } [COLOR="Green"]// end if[/COLOR] } [COLOR="Blue"]catch [/COLOR](e) { alert(e); } [COLOR="Green"]// end try[/COLOR] } [COLOR="Green"]// end function[/COLOR] } [COLOR="Green"]// end if[/COLOR] win.updateProgress = [COLOR="Blue"]function[/COLOR](val) { [COLOR="Blue"]var [/COLOR]win = [COLOR="Blue"]this[/COLOR]; win.bar.value = val; [COLOR="Green"] // recenter the progressWindow if desired // win.center(win.parent);[/COLOR] win.show(); } [COLOR="Green"]// end function[/COLOR] win.center(win.parent); [COLOR="Blue"]return [/COLOR]win; }; [/SIZE]
Ich habe ein dunkles Rot als Vollton dahinter gelegt und dann gemalt - offensichtlich nicht gründlich genug - ich wollte nur das Holz ein wenig vom Grau befreien.
Bin halt blind.
Schön, dass außer mir noch einige andere die Höllentour gehen. Sei vorsichtiger mit dem Schärfen (lieber öfter mit ganz kleinen Radien und bei jedem Versuch eine stark vergrößerte Vorschau zeigen lassen). So vermeidest Du die unschönen Kanten.So ich habe weiter gelesen und versucht das gelesene anzwenden.. denke das ist jetzt bisher mein bestes Bild ... hab mich versucht sehr zurückzuhalten was das absoften angeht, da in diesem Bereich wohl mein grösster Fehler lag ...
vielleicht könnt ihr mich ja auch weiterhin ein bisschen in die richtige Richtung schubsen
Danke und grüsse Mark
hier mal mein HDR- Trekker ... pamp pamp pamp ...
nicht perfekt aber naja ...
gruß
rico aka ultrahoschie
Ich hab mal ne Frage an die Profis, wie kann ich mit dem Zauberstab Werkzeug mehrere Sachen auf einmal Auswählen Gruß Tino.
@Ndungu Kannst du Evtl. das Original einstellen Gruß Tino.
Hab's nochmal über einen Weißabgleich versucht. Besser so?Reiner hasst du da zuviel am Rotkanal gedreht??