Menu

Skip to content
AppleScriptの穴
  • Home
  • Products
  • Docs
  • Events
  • Forum
  • About This Blog
  • License
  • 仕事依頼

AppleScriptの穴

Useful & Practical AppleScript archive. Click '★Click Here to Open This Script' Link to download each AppleScript

指定画像をbase64エンコード文字列に変換

Posted on 10月 27, 2019 by Takaaki Naganoya

指定画像をbase64エンコーディング文字列に変換するAppleScriptです。

用途は、sdef(AppleScript用語辞書)に画像を突っ込む(ためのデータを作る)こと。それだけです。

ただ、あまりにでかい画像をbase64文字化して取得すると、スクリプトエディタが結果を表示したときに不安定になったり処理が返ってこなくなったりするので、文字列を取得する前にデータサイズを計算し、リサイズしてから文字列化するとか、他の形式(GIFなど)を用いてエンコードするなどのケアが必要になります。ねんのため。

元画像が何であっても、NSImageに読み込める画像なら(OSでサポートしている画像なら)読み込んで、PNG形式に変換したのちにBase64エンコード文字列に変換しています。


▲エンコードするにしても数10KBとかそのぐらいのファイルサイズの画像にしておかないと後がつらい


▲4K解像度の画像をbase64エンコードするとこんなに結果が巨大に

AppleScript名:指定画像をbase64エンコード文字列に変換.scptd
—
–  Created by: Takaaki Naganoya
–  Created on: 2019/10/25
—
–  Copyright © 2019 Piyomaru Software, All Rights Reserved
—
property NSString : a reference to current application’s NSString
property NSImage : a reference to current application’s NSImage
property NSPNGFileType : a reference to current application’s NSPNGFileType
property NSBitmapImageRep : a reference to current application’s NSBitmapImageRep
property NSUTF8StringEncoding : a reference to current application’s NSUTF8StringEncoding
property NSDataBase64EncodingEndLineWithLineFeed : a reference to current application’s NSDataBase64EncodingEndLineWithLineFeed

use AppleScript version "2.4" — Yosemite (10.10) or later
use framework "Foundation"
use scripting additions

set aFile to choose file of type {"public.image"}
set aStr to base64StringFromImageFile(aFile) of me

–Base64 Encode
on base64StringFromImageFile(aFile)
  set aPOSIX to POSIX path of aFile
  
set anImage to NSImage’s alloc()’s initWithContentsOfFile:aPOSIX
  
set imageRep to NSBitmapImageRep’s alloc()’s initWithData:(anImage’s TIFFRepresentation())
  
set aPNGdat to imageRep’s representationUsingType:(NSPNGFileType) |properties|:(missing value)
  
set base64Str to aPNGdat’s base64EncodedDataWithOptions:(NSDataBase64EncodingEndLineWithLineFeed)
  
set bStr to (NSString’s alloc()’s initWithData:base64Str encoding:(NSUTF8StringEncoding))
  
return bStr as string –or return NSString (delete as string) for speedy processing
end base64StringFromImageFile

★Click Here to Open This Script 

More from my site

  • sdef(AppleScript用語辞書)に画像を入れるsdef(AppleScript用語辞書)に画像を入れる
  • sdefの内容を強引に取得するsdefの内容を強引に取得する
  • 【基礎】アプリケーションの操作は、用語辞書に書いてあるとおり記述しないと動かない【基礎】アプリケーションの操作は、用語辞書に書いてあるとおり記述しないと動かない
  • checkboxで項目選択するありふれたScriptにsdefをつけてみるcheckboxで項目選択するありふれたScriptにsdefをつけてみる
  • 指定画像をPNG形式(グレースケール)で保存指定画像をPNG形式(グレースケール)で保存
  • 画像に円を塗る画像に円を塗る
Posted in Image Text | Tagged 10.12savvy 10.13savvy 10.14savvy 10.15savvy NSBitmapImageRep NSDataBase64EncodingEndLineWithLineFeed NSImage NSPNGFileType NSString NSUTF8StringEncoding | Leave a comment

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *


Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'ZeroSpam\Modules\Comments\Comments' does not have a method 'enqueue_davidwalsh' in /home/piyomaru/piyocast.com/public_html/as/wp-includes/class-wp-hook.php on line 287

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

電子書籍(PDF)をオンラインストアで販売中!

Google Search

Popular Posts

  • Numbersで選択範囲のセルのデータを取得して重複データを抽出
  • 文字種類変換(ASOC)
  • Keynoteで全スライドのタイトルアイテムの高さを統一
  • 【基礎】AppleScriptの実行を(操作により)中断する
  • iCloud Driveフォルダへのパスを求める
  • 指定名称のアプリケーションをフルスクリーン表示
  • 文字置換 v2
  • JPEG画像の破損チェック
  • 文字エンコーディングを自動判別してファイル読み込み v1.2.1
  • Numbersで指定の2つの書類のデータのdiffを取る
  • Numbersで選択中の表のセルの範囲を背景色で頻度集計
  • AppleScriptでキースキャン
  • Evernoteがv10.0でElectronベースのWebブラウザ的なアプリに
  • Script Debugger v8 日本語対応中
  • mouseClickを用いて指定座標をクリック
  • Script Debuggerに必要な機能を追加する
  • 指定文字コードでファイル書き出し(UTF-8)v2
  • iTunesライブラリ中のアートワークをすべてJPEGで書き出し v2
  • Bluetoothデバイスのバッテリー残量を取得 v3
  • macOS 10.15beta関連

Tags

10.11savvy (1109) 10.12savvy (1249) 10.13savvy (1389) 10.14savvy (514) 10.15savvy (305) 11.0savvy (114) CotEditor (48) Finder (43) iTunes (25) Keynote (62) NSAlert (59) NSAlertSecondButtonReturn (16) NSArray (50) NSBitmapImageRep (20) NSBundle (19) NSButton (33) NSColor (48) NSDictionary (26) NSFileManager (23) NSFont (18) NSImage (40) NSJSONSerialization (21) NSMutableArray (61) NSMutableDictionary (21) NSPredicate (36) NSRunningApplication (55) NSScreen (30) NSScrollView (22) NSString (114) NSURL (93) NSURLRequest (22) NSUTF8StringEncoding (30) NSUUID (18) NSView (33) NSWindow (17) NSWorkspace (19) Numbers (42) Pages (16) Safari (34) System Events (16) WKUserContentController (20) WKUserScript (19) WKUserScriptInjectionTimeAtDocumentEnd (17) WKWebView (21) WKWebViewConfiguration (21)

カテゴリー

  • AirDrop
  • AirPlay
  • Animation
  • AppleScript Application on Xcode
  • Bluetooth
  • boolean
  • Bug
  • Calendar
  • call by reference
  • Clipboard
  • Code Sign
  • Color
  • Custom Class
  • dialog
  • drive
  • exif
  • file
  • File path
  • filter
  • folder
  • Font
  • GAME
  • geolocation
  • GUI
  • GUI Scripting
  • History
  • How To
  • Icon
  • Image
  • Input Method
  • Internet
  • JavaScript
  • JSON
  • JXA
  • Keychain
  • Language
  • list
  • Locale
  • Machine Learning
  • Markdown
  • Menu
  • Metadata
  • MIDI
  • MIME
  • Natural Language Processing
  • Network
  • news
  • Noification
  • Notarization
  • Number
  • OCR
  • OSA
  • PDF
  • Peripheral
  • PRODUCTS
  • QR Code
  • Raw AppleEvent Code
  • Record
  • recursive call
  • regexp
  • Release
  • Remote Control
  • Require Control-Command-R to run
  • REST API
  • RTF
  • Sandbox
  • Screen Saver
  • Script Libraries
  • sdef
  • search
  • Security
  • shell script
  • Sort
  • Sound
  • Spellchecker
  • Spotlight
  • SVG
  • System
  • Tag
  • Telephony
  • Text
  • Text to Speech
  • timezone
  • Tools
  • Update
  • URL
  • UTI
  • Web Contents Control
  • WiFi
  • XML
  • XML-RPC
  • イベント(Event)
  • 未分類

アーカイブ

  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月

https://piyomarusoft.booth.pm/items/301502

メタ情報

  • 登録
  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org
Proudly powered by WordPress
Theme: Flint by Star Verte LLC