Ga naar inhoud
  • 0

Applescript: open afbeelding en sla op


Vitruvius

Vraag

Om afbeeldingen te roteren in filemaker kan ik manueel het volgende doen

1) ik klik op de afbeelding wat eigenlijk een knop is die de afbeelding in kwestie open doet (via event verzenden en het path van de afbeelding in kwestie) -> concreet gaat de afbeelding open in voorvertoning

2) sla het bestand op (zonder verder iets te wijzigen, want de rotatie staat goed in voorvertoning)

3) gaat naar het vorige en dan naar het volgende record in filemaker (om de record te refreshen) -> de afbeelding staat nu goed in filemaker

 

Dacht ik dat dus te automatiseren door op een knopje te drukken via een Apple script

 

"set this_file to AFBEELDING
try
 tell application "Image Events"
 launch
 set this_image to open this_file
 save this_image with icon
 close this_image
 end tell
on error error_message
 display dialog error_message
end try"

 

In het applescript pas ik via een substitute eerst AFBEELDING aan in het juiste path

 

maar dat werkt dus niet

Ik krijg de boodschap van filemaker: Verwachtte expressie maar vond onbekend token. en Onbekende fout: -2741.

Wat doe ik fout?

Link naar reactie

20 antwoorden op deze vraag

Aanbevolen berichten

  • 0

Het lukte niet, maar heb een andere manier gevonden

- open afbeelding vanuit filemaker in voorvertoning (met event)

- apple script waarmee ik dan cmd+s uitvoer

- sluiten voorvertoning

- filemaker actief maken

 

maar dan wil de rest van het filemaker script niet verder gaan dat een refresh uitvoert zodat de afbeelding recht staat in het container veld. ik krijg een zandloper.

Wat moet ik nog toevoegen op het einde van het Apple script zodat mijn filemaker script verder loopt

Link naar reactie
  • 0

Ja, maar het punt is dat je het niet moet roteren.

De afbeelding staat juist wanneer je het opent in voorvertoning.

In de container van Filemaker staat de afbeelding echter gedraaid.

Wanneer je de afbeelding opent en dan opslaat (zonder te draaien), staat het correct in de container.

Los daarvan, gaat mijn filemaker script niet verder nadat het apple script is uitgevoerd.

Maar ik, zal jou oplossing eens proberen zonder de roteerfunctie dan.

 

delay 0.5
tell application "System Events"
   tell process "Preview"
       keystroke "s" using {command down}
delay 0.5
   end tell
end tell
tell application "Preview" to quit
delay 0.5
activate application "Filemaker Pro Advanced"

Link naar reactie
  • 0

@ Infomatics

 

Jouw script werkt ook, maar ik heb het zelfde probleem.

Ik krijg op het einde een zandloper.

Ik doe wel geen export en import, ik open de afbeelding en sla ze opnieuw op.

De map waar de afbeelding in staat is een netwerkschijf. Is dat misschien de oorzaak van de zandloper?

Link naar reactie
  • 0

En daar is het probleem weer ...

 

Ik moet weer foto's gaan roteren (top down foto's waardoor het toestel niet altijd weet of ie nu verticaal of horizontaal moet staan)

 

Het script krijg ik nog steeds niet werkende.

Probleem 1 is dat de foto in de container een verwijzing is en de afbeelding zelf niet in de container staat.

Probleem 2 is dat de foto's, en de databank, op een server staan.

 

Ik moet in Applescript dan waarschijnlijk eerst de serverschijf mounten. En hoe creëer ik dan het juiste path.

 

veel dank

Link naar reactie
  • 0

Een pad naar een bestand op een server verschilt weinig van een gewoon pad. Je begint het pad met het mountpunt. Dit is doorgaans /Volumes, daar kun je ook kijken hoe de serverschijf is genoemd. Wanneer de naam van de serverschijf hetzelfde is als de naam van een van de andere aangekoppelde schijven krijg je er een cijfer achter. B.v. HD-1, HD-2

 

Kortom wanneer op de server met schijfnaam Server een bestand bij de gebruiker Jan op de desktop staat met de naam file.png dan is het pad:

/Volumes/Server/Users/Jan/Desktop/file.png

Zo'n pad is trouwens hoofdlettergevoelig.

 

Maar heeft dit probleem met de foto's niet te maken met de metadata?

Link naar reactie
  • 0

Vraagje: Gebruiken jullie de Externe referentie in de container?

 

Tip: Nooit meer gebruiken!

Het is oude functionaliteit om het intern opslaan van foto's te voorkomen, maar daar heeft Filemaker tegenwoordig een andere oplossing voor.

Een container kan je nu echt extern opslaan, buiten de database.

 

Voor zover ik weet, zal Filemaker bij het daadwerkelijk importeren van een foto gaan controleren hoe de stand van de foto's is en dit zo corrigeren dat het vervolgens wel goed werkt.

 

Ik had deze problemen ook met oudere versies van Filemaker (met externe referentie) en met de nieuwste versies heb ik dat probleem niet meer.

Link naar reactie
  • 0

De foto's worden via een script geïmponeerd. Vervolgens worden de foto's hernoemd en op een andere locatie weggeschreven via een script op basis van een aantal elementen. Door dan de referentie aan te passen werken de containers. Als dat allemaal ook werkt op de nieuwe manier wil ik dat doen. Het probleem is dat de foto in filemaker wel juist staat, maar bij een export als pdf staat de foto fout gedraaid. Dus daarom dat ik verticale foto's wil draaien via het Apple script. Hoe weet ik welke foto's gedraaid moeten worden? Dat is één van de elementen die ik wil gebruiken in het Apple script.

 

Ik zal eerst de juiste referentie voor de server testen.

Link naar reactie
  • 0

Ik weet niet of je dit draaien van afbeeldingen algemeen wilt gaan uitvoeren op willekeurige computers of alleen op mac(s) die je zelf gebruikt. Indien het alleen voor jezelf is, zou je ImageMagick kunnen installeren. Dan kan je de shell of bash gebruiken om images te converteren (en dat kan je prima vanuit applescript besturen

 

De gemakkelijkste manier is om MacPorts te gebruiken om ImageMagick te installeren.

 

Zorg eerst dat je MacPorts hebt. Die kan je downloaden van: https://www.macports.org/install.php

 

Daarna open je de terminal en tik je in:

sudo port install ImageMagick

Terminal zal bij de start van dit commando beginnen met een waarschuwing:

Warning: The Xcode Command Line Tools don't appear to be installed; most ports will likely fail to build.
Warning: Install them by running `xcode-select --install'.

maar die heb ik genegeerd en alles werkte daarna prima. Na de installatie kan je op de commandline intikken

man convert

(convert is een onderdeel van ImageMagick). De algemene syntax is dan:

convert [invoer-opties] basisbestand [uitvoer-opties] resultaatbestand

 

Ten slotte nog even: je kan ImageMagick ook op andere platfora installeren (zoals Windows), zodat je de commando's die je ontwikkelt eventueel ook daar zou kunnen gebruiken.

Link naar reactie
  • 0
Volgens mij moet je dat ook niet met Preview maar met Image Events doen:

 

klopt, maar exporteer die afbeelding dan eens als pdf binnen filemaker ...

De afbeelding draait niet mee. Dus image events draait anders. Op de één of andere manier negeert de pdf export de draai instructie van image events.

Draai ik de afbeelding in voorvertoning dan gaat dat wel.

 

Zelfs dat draaien is er te veel aan, want de afbeelding staat goed in zowel voorvertoning als in filemaker, alleen bij een export als pdf werkt het niet.

Ik moet de afbeelding 360° draaien in voorvertoning en opslaan. Dan is de export wel OK

 

raar hé

 

ik zal die imagemagick eens testen

Link naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...