投稿

2016の投稿を表示しています

PowerShell 正規表現 整数1以上10以下の数字にマッチ

Quick Edit Pencil
0..30 | %{
Write-Host $_  ($_  -match "^[1-9]$|^10$")
}

0 False
1 True
2 True
3 True
4 True
5 True
6 True
7 True
8 True
9 True
10 True
11 False
12 False
13 False
14 False
15 False
16 False
17 False
18 False
19 False
20 False
21 False
22 False
23 False
24 False
25 False
26 False
27 False
28 False
29 False

正規表現での量指定子
https://msdn.microsoft.com/ja-jp/library/3206d374(v=vs.110).aspx

PowerShell 剰余% 演算子

Quick Edit Pencil
0..20 | %{
Write-Host $_ = ($_%2)
}

0 = 0
1 = 1
2 = 0
3 = 1
4 = 0
5 = 1
6 = 0
7 = 1
8 = 0
9 = 1
10 = 0
11 = 1
12 = 0
13 = 1
14 = 0
15 = 1
16 = 0
17 = 1
18 = 0
19 = 1
20 = 0

PowerShell 大なり小なり以上以下演算子

Quick Edit Pencil
Write-Host -gt 1 `> 10  = 1 -gt 10 (1 -gt 10) 左は右より大きいか
Write-Host -lt 1 `< 10  = 1 -lt 10 (1 -lt 10) 左は右より小さいか

Write-Host -ge 1 `>= 10  = 1 -ge 10 (1 -ge 10) 左は右以上か
Write-Host -le 1 `<= 10  = 1 -le 10 (1 -le 10) 左は右以下か
-gt 1 > 10 = 1 -gt 10 False 左は右より大きいか
-lt 1 < 10 = 1 -lt 10 True 左は右より小さいか

-ge 1 >= 10 = 1 -ge 10 False 左は右以上か
-le 1 <= 10 = 1 -le 10 True 左は右以下か

PowerShellのGetDetailsOf メソッドでプロパティの詳細情報のID番号と項目名を列挙します

Quick Edit Pencil
※PowerShell初心者
※下の方に画像が持つExif情報を列挙する方法もあります。

例えば、あるJPG画像(C:\IMG_0001.JPG)のカメラ機器のモデル名とExifの撮影日時に関する情報が欲しいとします。

1.

PowerShellでは、Get-ItemPropertやGet-ChildItemを使いFileInfoプロパティ取ることができます。
$path = "C:\IMG_0001.JPG"
Get-ItemProperty $path | Select-Object * | Format-List
$path = "C:\IMG_0001.JPG"
Get-ChildItem $path | Format-List -property *
結果: しかし、Get-ItemPropert等を使い取ることができるFileInfoプロパティには必要な情報がありません。
そこで、GetDetailsOfを使い、ファイルプロパティの詳細情報から必要な情報を取得します。
PSPath            : Microsoft.PowerShell.Core\FileSystem::C:\IMG_0001.JPG
PSParentPath      : Microsoft.PowerShell.Core\FileSystem::C:\
PSChildName       : IMG_0001.JPG
PSDrive           : C
PSProvider        : Microsoft.PowerShell.Core\FileSystem
Mode              : -a----
VersionInfo       : File:             C:\IMG_0001.JPG
                    InternalName:
                    OriginalFilename:
                    FileVersion:
                    FileDescription:
                    Product:
                    ProductVersion:
                    Debug:            False
                    Patched:          False
                    PreRelease:       False
                    PrivateBuild:     False
                    SpecialBuild:     False
                    Language:

BaseName          : IMG_0001
Target            : {}
LinkType          :
Name              : IMG_0001.JPG
Length            : 8747721
DirectoryName     : C:\
Directory         : C:\
IsReadOnly        : False
Exists            : True
FullName          : C:\IMG_0001.JPG
Extension         : .JPG
CreationTime      : 2016/11/29 23:17:34
CreationTimeUtc   : 2016/11/29 14:17:34
LastAccessTime    : 2016/11/29 23:17:34
LastAccessTimeUtc : 2016/11/29 14:17:34
LastWriteTime     : 2016/11/29 21:47:40
LastWriteTimeUtc  : 2016/11/29 12:47:40
Attributes        : Archive

2.

GetDetailsOfは、ファイルプロパティの詳細情報のID番号を指定して情報を取得します。
先ずは、GetDetailsOfを使い詳細情報のIDと項目名を列挙して必要なID番号を見つけます。
$path = "C:\IMG_0001.JPG"

$shell = New-Object -COMObject Shell.Application

$folder = Split-Path $path
$file = Split-Path $path -Leaf

$shellfolder = $shell.Namespace($folder)
$shellfile = $shellfolder.ParseName($file)

0..310 | Foreach-Object { '{0}:{1}' -f $_, $shellfolder.GetDetailsOf($null, $_) }
結果: 求めるカメラ機器のモデル名が保存されているプロパティは30番であると判明しました。
次に求める、Exifの撮影日時に関する情報は12番の撮影日時に反映されているハズです。
それでは、特定したID番号を指定してGetDetailsOfで情報をとります。
0:名前
  1:サイズ
  2:項目の種類
  3:更新日時
  4:作成日時
  5:アクセス日時
  6:属性
  7:オフラインの状態
  8:利用可能性
  9:認識された種類
 10:所有者
 11:分類
 12:撮影日時
 13:参加アーティスト
 14:アルバム
 15:年
 16:ジャンル
 17:指揮者
 18:タグ
 19:評価
 20:作成者
 21:タイトル
 22:件名
 23:分類項目
 24:コメント
 25:著作権
 26:トラック番号
 27:長さ
 28:ビット レート
 29:保護
 30:カメラのモデル
 31:大きさ
 32:カメラの製造元
 33:会社
 34:ファイルの説明
 35:プログラム名
 36:継続時間
 37:オンライン
 38:再帰
 39:場所
 40:任意出席者アドレス
 41:任意出席者
 42:開催者住所
 43:開催者名
 44:アラーム時刻
 45:必須出席者アドレス
 46:必須出席者
 47:リソース
 48:会議の状態
 49:空き時間情報
 50:合計サイズ
 51:アカウント名
 52:
 53:進捗状況
 54:コンピューター
 55:記念日
 56:秘書の名前
 57:秘書の電話
 58:誕生日
 59:住所 (会社)
 60:市 (会社)
 61:国/地域 (会社)
 62:私書箱 (会社)
 63:郵便番号 (会社)
 64:都道府県 (会社)
 65:番地 (会社)
 66:FAX 番号 (会社)
 67:会社のホーム ページ
 68:会社電話
 69:コールバック番号
 70:自動車電話
 71:子供
 72:会社代表電話
 73:部署
 74:電子メール アドレス
 75:電子メール2
 76:電子メール3
 77:電子メールの一覧
 78:電子メール表示名
 79:表題2
 80:名
 81:氏名
 82:性別
 83:名2
 84:趣味
 85:住所 (自宅)
 86:市 (自宅)
 87:国/地域 (自宅)
 88:私書箱 (自宅)
 89:郵便番号 (自宅)
 90:都道府県 (自宅)
 91:番地 (自宅)
 92:自宅 FAX
 93:自宅電話
 94:IM アドレス
 95:イニシャル
 96:役職
 97:ラベル
 98:姓
 99:住所 (郵送先)
100:ミドル ネーム
101:携帯電話
102:ニックネーム
103:勤務先所在地
104:住所 (その他)
105:ほかの市区町村
106:他の国/地域
107:他の私書箱
108:他の郵便番号
109:他の都道府県
110:他の番地
111:ポケットベル
112:肩書き
113:市区町村 (郵送先)
114:国/地域
115:私書箱 (郵送先)
116:郵便番号 (郵送先)
117:都道府県
118:番地 (郵送先)
119:プライマリ電子メール
120:通常の電話
121:職業
122:配偶者
123:サフィックス
124:TTY/TTD 電話
125:テレックス
126:Web ページ
127:内容の状態
128:内容の種類
129:取得日時
130:アーカイブ日時
131:完了日
132:デバイス カテゴリ
133:接続済み
134:探索方法
135:フレンドリ名
136:ローカル コンピュー
137:製造元
138:モデル
139:ペアリング済み
140:クラス
141:状態
142:状態
143:クライアント ID
144:共同作成者
145:コンテンツの作成日時
146:前回印刷日
147:前回保存日時
148:事業部
149:ドキュメント ID
150:ページ数
151:スライド
152:総編集時間
153:単語数
154:期限
155:終了日
156:ファイル数
157:ファイル拡張子
158:ファイル名
159:ファイル バージョン
160:フラグの色
161:フラグの状態
162:空き領域
163:
164:
165:グループ
166:共有の種類
167:ビットの深さ
168:水平方向の解像度
169:幅
170:垂直方向の解像度
171:高さ
172:重要度
173:添付
174:削除
175:暗号化の状態
176:フラグの有無
177:終了済
178:未完了
179:開封の状態
180:共有
181:製作者
182:日付時刻
183:フォルダー名
184:フォルダーのパス
185:フォルダー
186:参加者
187:パス
188:場所ごと
189:種類
190:連絡先の名
191:履歴の種類
192:言語
193:最終表示日
194:説明
195:リンクの状態
196:リンク先
197:URL
198:
199:
200:
201:メディアの作成日時
202:リリース日
203:エンコード方式
204:エピソード番号
205:プロデューサー
206:発行元
207:シーズン番号
208:サブタイトル
209:ユーザー Web URL
210:作者
211:
212:添付ファイル
213:BCC アドレス
214:BCC
215:CC アドレス
216:CC
217:会話 ID
218:受信日時
219:送信日時
220:送信元アドレス
221:差出人
222:添付ファイルの有無
223:送信者アドレス
224:送信者名
225:ストア
226:送信先アドレス
227:To do タイトル
228:宛先
229:経費情報
230:アルバムのアーティス
231:アルバム アーティス
232:アルバム ID
233:アルバムで並べ替え
234:参加アーティストで並
235:ビート数/分
236:作曲者
237:作曲者で並べ替え
238:ディスク
239:イニシャル キー
240:コンパイルの一部
241:雰囲気
242:セットのパート
243:期間
244:色
245:保護者による制限
246:保護者による制限の理
247:使用領域
248:EXIF バージョン
249:イベント
250:露出補正
251:露出プログラム
252:露出時間
253:絞り値
254:フラッシュ モード
255:焦点距離
256:35mm 焦点距離
257:ISO 速度
258:レンズ メーカー
259:レンズ モデル
260:光源
261:最大絞り
262:測光モード
263:向き
264:人物
265:プログラムのモード
266:彩度
267:対象の距離
268:ホワイト バランス
269:優先度
270:プロジェクト
271:チャンネル番号
272:この回のタイトル
273:字幕
274:再放映
275:SAP
276:放送日
277:プログラムの説明
278:記録時間
279:ステーション コール
280:局名
281:概要
282:抜粋
283:自動要約
284:関連度
285:ファイルの所有権
286:秘密度
287:共有ユーザー
288:共有状態
289:
290:製品名
291:製品バージョン
292:サポートのリンク
293:ソース
294:開始日
295:共有中
296:同期状況
297:課金情報
298:完了
299:仕事の所有者
300:タイトルで並べ替え
301:総ファイル サイズ
302:商標
303:ビデオ圧縮
304:ディレクター
305:データ速度
306:フレーム高
307:フレーム率
308:フレーム幅
309:ビデオの向き
310:総ビット レート

3.

GetDetailsOfを使いIDが30番と12番の詳細情報を取得します。
$path = "C:\IMG_0001.JPG"

$shell = New-Object -COMObject Shell.Application

$folder = Split-Path $path
$file = Split-Path $path -Leaf

$shellfolder = $shell.Namespace($folder)
$shellfile = $shellfolder.ParseName($file)

$shellfolder.GetDetailsOf($shellfile, 30) 
$shellfolder.GetDetailsOf($shellfile, 12) 
結果: ファイルプロパティの詳細情報からカメラのモデル名は取得できましたが、撮影日時はなにも表示されません。
確認のため、GetDetailsOfを使いID番号と詳細情報を列挙してみます。前出の列挙は項目名です。
Nikon COOLSCAN III LS-30
 

4.

では、GetDetailsOfを使いID番号と詳細情報を列挙してみます。
# ファイルプロパティの詳細情報の取得し列挙する

# ファイルのフルパス
$path = "C:\IMG_0001.jpg"

# フルパスを分割
$folder = Split-Path $path
$file = Split-Path $path -Leaf
#Write-Host ディレクトリーパス: $folder"`r`n"ファイル名: $file

# シェルオブジェクトを作成
$shell = New-Object -ComObject Shell.Application

# フォルダの指定
$shellFolder = $shell.NameSpace($folder)

# ファイルの指定
$shellFile = $shellFolder.parseName($file)

# 詳細プロパティの要約 -1を指定
Write-Host $shellFolder.GetDetailsOf($shellFile,-1)

# 詳細プロパティを列挙 とりあえず310項目
for ($i=0; $i -lt 310; $i++){
    Write-Host $i = $shellFolder.GetDetailsOf($shellFile,$i)
}
結果: 12の撮影日時には情報はありませんでしたので、ファイルのExif情報から撮影日情報を取得してみます。
対象の画像は、2001年製のフィルムスキャナー「Nikon COOLSCAN III LS-30」でスキャンされているので、撮影日時に反映される項目が設定されていない可能性があります。
Exif情報は、詳細情報とは別に記録されています。
項目の種類: JPG ファイル
評価: 評価なし
大きさ: ‪3894 x 2592‬
サイズ: 8.34 MB

0 = IMG_0001.jpg
1 = 8.34 MB
2 = JPG ファイル
3 = 2016/11/29 21:47
4 = 2016/11/29 23:17
5 = 2016/11/29 23:17
6 = A
7 =
8 = オフラインで利用可能
9 = イメージ
10 = Administrators
11 = ピクチャ
12 =
13 =
14 =
15 =
16 =
17 =
18 =
19 = 評価なし
20 =
21 =
22 =
23 =
24 =
25 =
26 =
27 =
28 =
29 =
30 = COOLSCAN III LS-30
31 = ‪3894 x 2592‬
32 = Nikon
33 =
34 =
35 =
36 =
37 =
38 =
39 =
40 =
41 =
42 =
43 =
44 =
45 =
46 =
47 =
48 =
49 =
50 = 110 GB
51 =
52 =
53 =
54 = DESKTOP-******* (この PC)
55 =
56 =
57 =
58 =
59 =
60 =
61 =
62 =
63 =
64 =
65 =
66 =
67 =
68 =
69 =
70 =
71 =
72 =
73 =
74 =
75 =
76 =
77 =
78 =
79 =
80 =
81 =
82 =
83 =
84 =
85 =
86 =
87 =
88 =
89 =
90 =
91 =
92 =
93 =
94 =
95 =
96 =
97 =
98 =
99 =
100 =
101 =
102 =
103 =
104 =
105 =
106 =
107 =
108 =
109 =
110 =
111 =
112 =
113 =
114 =
115 =
116 =
117 =
118 =
119 =
120 =
121 =
122 =
123 =
124 =
125 =
126 =
127 =
128 =
129 =
130 =
131 =
132 =
133 =
134 =
135 =
136 =
137 =
138 =
139 =
140 =
141 =
142 =
143 =
144 =
145 =
146 =
147 =
148 =
149 =
150 =
151 =
152 =
153 =
154 =
155 =
156 =
157 = .jpg
158 = IMG_0001.jpg
159 =
160 =
161 =
162 = 57.1 GB
163 =
164 =
165 =
166 =
167 = 24
168 = ‎2700 dpi
169 = ‎3894 ピクセル
170 = ‎2700 dpi
171 = ‎2592 ピクセル
172 =
173 =
174 =
175 =
176 =
177 =
178 =
179 =
180 = いいえ
181 =
182 =
183 = C:\
184 = C:\
185 = C:\
186 =
187 = C:\IMG_0001.jpg
188 =
189 = JPG ファイル
190 =
191 =
192 =
193 =
194 =
195 = 未解決
196 =
197 =
198 =
199 =
200 =
201 =
202 =
203 =
204 =
205 =
206 =
207 =
208 =
209 =
210 =
211 =
212 =
213 =
214 =
215 =
216 =
217 =
218 =
219 =
220 =
221 =
222 =
223 =
224 =
225 =
226 =
227 =
228 =
229 =
230 =
231 =
232 =
233 =
234 =
235 =
236 =
237 =
238 =
239 =
240 =
241 =
242 =
243 =
244 =
245 =
246 =
247 = ‎48%
248 = 0210
249 =
250 =
251 =
252 =
253 =
254 =
255 =
256 =
257 =
258 =
259 =
260 =
261 =
262 =
263 =
264 =
265 =
266 =
267 =
268 =
269 =
270 =
271 =
272 =
273 =
274 =
275 =
276 =
277 =
278 =
279 =
280 =
281 =
282 =
283 =
284 =
285 =
286 =
287 =
288 = 非共有
289 = 利用可能
290 =
291 =
292 =
293 =
294 =
295 =
296 =
297 =
298 =
299 =
300 =
301 =
302 =
303 =
304 =
305 =
306 =
307 =
308 =
309 =

5.

Exif情報を取得するには.NET FrameworkのSystem.Drawing.BitmapクラスからPropertyItemsを使う必要があります。
PropertyItemsで抽出する情報もID番号を指定する必要があるので、Exif情報の一覧表で必要とする項目のあたりを付けます。


6.

とりあえず、画像が持つExif情報を列挙してみる。
求める撮影日時的な情報が有ればIDから項目が何であるかを調べます。
$path = "C:\IMG_0001.JPG"

# アセンブリの読み込み
[void][Reflection.Assembly]::LoadWithPartialName("System.Drawing")

# 画像を指定します。
$image = New-Object System.Drawing.Bitmap ($path)

# IDと情報を列挙します
foreach ($item in $image.PropertyItems) {
    # バイナリで格納されているのでText.Encoding.ASCIIのGetString関数で文字列にします
    $exifv = [System.Text.Encoding]::ASCII.GetString($item.Value)
    # 表示します
    Write-Host $item.id = $exifv # プロンプトに表示
}

# オブジェクトの破棄
$image.Dispose()
結果: 画像が持つExif情報の一覧から、必要な撮影日時の情報は306番にあることがわかりましたので、次で情報を抽出してみます。
271 = Nikon
272 = COOLSCAN III LS-30
282 = ?
   
283 = ?
   
296 =  
306 = 2001.10.25 20.45.27
531 =  
36864 = 0210
37121 =    
37500 =
40960 = 0100
40961 =  
40962 = 6 
40963 =

20625 =                                                                                                                
20624 =                                                                                                                
34675 =    ?NKON    mntrRGB XYZ ?      ;  acspAPPL    none                  ??      ?-
desc   ?   MrXYZ   @    gXYZ   T    bXYZ   h    rTRC   |    gTRC   ?    bTRC   ?    wtpt   ?    cprt   ?   ,desc       i
kon Adobe RGB 4.0.0.3000           ikon Adobe RGB 4.0.0.3000    XYZ       ?   O?   ?XYZ       4?  ?+   ?XYZ       &2   
??curv         3  curv         3  curv         3  XYZ       ?T       ?text    Nikon Inc. & Nikon Corporation 2001

7.

PropertyItemsでExif情報からID30を抽出します。
$path = "C:\IMG_0001.JPG"

# アセンブリの読み込み
[void][Reflection.Assembly]::LoadWithPartialName("System.Drawing")

# 画像を指定します。
$image = New-Object System.Drawing.Bitmap ($path)

# 求めるIDを抽出
foreach ($item in $image.PropertyItems) {
    if ($item.Id -eq 306) {
        $exif_ModifyDate = [System.Text.Encoding]::ASCII.GetString($item.Value)
        Write-Host $item.id = $exif_ModifyDate
    }
}

# オブジェクトの破棄
$image.Dispose()
結果: 撮影日時として使える情報が取得できました。
306 = 2016.11.25 20.45.27

8.

あとがき


例示の画像はスキャン画像なのでExif情報の撮影日時的な項目を、ファイルプロパティに当て込むのは編なので、適当な項目にメモとして流し込むのがよさそうです。

今回取得した情報は、Set-ItemPropertyでPowershellで扱えるGet-ItemPropertやGet-ChildItemを使い取得できるFileInfoプロパティ(-membertype property)に代入することができます。

また、Exif情報を取得する時に利用した.NET FrameworkのSystem.Drawingクラスを使えば、画像にテキストとしてドローすることも可能です。

ここまでは、素のままのPowershellで行うことができます。私の環境、windows10 64bit Proと windows10 32bit Homeで動作を確認しました。

ファイルプロパティの詳細情報の編集や追加、Exif情報の編集や追加は素のPowershellでは難しそうですが、外部のモジュールなどを組み込むとできるかもしれません。

以上

PowerShellでJPG画像のリサイズとウォーターマーク画像との合成を同時に行う

Quick Edit Pencil
指定したフォルダー内(サブフォルダも含む)のJPGファイルを一括で処理します。

# -----   ユーザー指定   -----

## 変数
#
#ターゲットディレクトリ
$path = "E:\OneDrive\画像\COOLSCAN3_LS-30"
#
#MIXする画像は正方形のαありのPNGで透過処理等が済んでいる前提です。
$miximage = "E:\OneDrive\ドキュメント\透かし\WATERMARK.PNG"
#
#リサイズ値(幅または高さのどちらか一方を指定すると、縦横比率を計算したサイズを決定するようにしてあります。)
$width = 360
$height = 0

#リサイズ付加名(リサイズ画像のあるディレクトリ名+$risize_name、画像名+$risize_name+.jpgとなります。)
$risize_name = "_RESIZE"

# -----   コード部分   -----

## WSHのShellオブジェクトを生成
$shell=New-Object -Com Shell.Application;

## 指定されたパス配下のJPGファイルを取得(サブフォルダーも含む)
$target = Get-ChildItem $path -include *.jpg -exclude *$risize_name.JPG -recurse | Where-Object {-not $_.PSIsContainer}

# アセンブリの読み込み(リサイズ)
[void][Reflection.Assembly]::LoadWithPartialName("System.Drawing")
#[void][reflection.assembly]::LoadWithPartialName("System.Drawing.Imaging")

#MIXする画像の読み込み(MIX)
$image2 = New-Object System.Drawing.Bitmap($miximage)

## ファイル分だけ繰り返し
$target | ForEach-Object {

    # 画像ファイルの読み込み(リサイズ)
    $image = New-Object System.Drawing.Bitmap($_.FullName)

    $resize_Width = 0
    $resize_Height = 0
    #受け取った引数から、新しいサイズを決定する
    if ( $width -gt 0 -and $height -eq 0 )
    {
    $resize_Width = $width
    $resize_Height = $image.Height / ($image.Width / $resize_Width)
    }
    elseif ( $height -gt 0 -and $width -eq 0 )
    {
    $resize_Height = $height
    $resize_Width = $image.Width / ($image.Height / $resize_Height)
    }
    elseif ( $width -gt 0 -and $height -gt 0 )
    {
    $resize_Width = $width
    $resize_Height = $height
    }
    else
    {
    Write-Host "画像サイズを指定してください"
    return
    }

    # 縮小先のオブジェクトを生成(リサイズ)
    $canvas = New-Object System.Drawing.Bitmap([int]($resize_Width), [int]($resize_Height))

    # 縮小先へ描画(リサイズ)
    $graphics = [System.Drawing.Graphics]::FromImage($canvas)
    $graphics.InterpolationMode = [System.Drawing.Drawing2D.InterpolationMode]::HighQualityBilinear
    $graphics.Clear([System.Drawing.Color]::White)
    $graphics.DrawImage($image, (New-Object System.Drawing.Rectangle(0, 0, $canvas.Width, $canvas.Height)))
    # MIX処理(リサイズ画像に上からDrawする)
    $image2_FitSize = @($resize_Width,$resize_Height) | sort
    #$graphics.InterpolationMode = [System.Drawing.Drawing2D.InterpolationMode]::HighQualityBilinear
    $graphics.DrawImage($image2, (New-Object System.Drawing.Rectangle([int](($resize_Width - $image2_FitSize[0]) /2) ,[int](($resize_Height - $image2_FitSize[0]) / 2), $image2_FitSize[0], $image2_FitSize[0])))

    ## リサイズ画像の保存フォルダーを作成
    $savepath = $_.DirectoryName + $risize_name
    New-Item $savepath -itemType Directory -Force

    # 保存(リサイズとMIX)
    $canvas.Save($savepath + "\" + $_.BaseName + $risize_name + ".JPG", [System.Drawing.Imaging.ImageFormat]::Jpeg)
    
    # リサイズ合成画像の作成日時にリサイズオリジナル画像の作成日時と更新日時を比較して古い日時を含める
    $renameFile = $savepath + "\" + $_.BaseName + $risize_name + ".JPG"
    $timeStamp = @($_.CreationTime,$_.LastWriteTime) | sort
    Set-ItemProperty $renameFile -Name CreationTime -Value $timeStamp[0]

    # オブジェクトの破棄(リサイズ)
    $graphics.Dispose()
    $canvas.Dispose()
    $image.Dispose()

}

# オブジェクトの破棄(MIX)
$image2.Dispose()

#本スクリプトの参考にしたページ
#PowerShell で画像の回転、リサイズを行う
#http://qiita.com/miyamiya/items/d1a975fb6618d46eda0c
#Powershellでα画像を合成する方法
#http://qiita.com/recomemos/items/528358a1e192aecbc38c
#09.画像ファイルをリサイズする
#http://hiros-dot.net/PowerShell/myfunction/myfunction09.htm

Windowsのクローンとバックアップソフト

Quick Edit Pencil
ウインドウズのクローンソフト

EaseUS Todo Backup - 窓の杜ライブラリ

MiniTool Partition Wizard - 窓の杜ライブラリ

AOMEI Backupper - 窓の杜ライブラリ

DOMContentLoadedイベントに対してリスナを登録

Quick Edit Pencil
2013年)過去記事
onloadの代わりにDOMContentLoadedを使ってみる

また使う機会があったので調べてみた

DOMContentLoaded周りの処理を詳しく調べてみました - Qiita

【JavaScript】記述方法別の実行タイミングについて - Qiita

javascriptのファイルをJavaScriptでロードする

Quick Edit Pencil
最近Qiitaがよくヒットするけどほぼ当たりなり


【JavaScript】記述方法別の実行タイミングについて - Qiita

動的ロード

script要素を生成することにより、動的にJavaScriptファイルをロードすることのできる記述方法。JavaScriptファイルのダウンロードから実行開始まで、その他の処理をブロックしないという特徴がある。
var script = document.createElement('script');
script.src = 'test.js';
document.body.appendChild(script);
なお、この記述方法は、クロスドメインでデータ取得を行う場合に利用されるJSONPという仕組みの実現にも使われる、らしい。。。


Qiitaから引用紹介

一回だけリロードさせる

Quick Edit Pencil
javascript一回だけリロードさせる


使えそう
一回だけならクッキーを食わせないでも良し

参考になるサイトさま

1回だけリロードさせる


ポイント if (window.name != "xyz") { alert("リロードしました"); location.reload(); window.name = "xyz"; }
説  明ページを1回だけリロードさせるにはwindow.nameを調べます。リロードするとドキュメントは変化しますがウィンドウは変化しません。そこでwindowの名前を示すnameプロパティを調べ名前が指定したものでなければリロードするようにします。リロード処理のところでnameプロパティに名前を設定すれば1度しかリロードしなくなります。
サンプル &lt;html&gt; &lt;head&gt; &lt;title&gt;1回だけリロードさせる&lt;/title&gt; &lt;/head&gt; &lt;body onLoad="rCheck()"&gt; 1回だけリロードします&#12290;&lt;br&gt; &lt;script language="JavaScript"&gt;&lt;!-- function rCheck() { if (window.name != "xyz") { alert("リロードしました"); location.reload(); window.name = "xyz"; } } // --&gt;&lt;/script&gt; &lt;/body&gt; &lt;/html&gt;

Bloggerのページタイプ別にスタイルを適用したい

Quick Edit Pencil

Bloggerのページタイプ別にCSSスタイルを適用したい時


三項演算子を使ってテンプレートのbodyタグをいじります。

bodyタグのclassに class="pagetype" とページタイプを付け、CSSで body.pagetype .post{...}  という具合にページタイプ別にスタイルを適用できる。

下記のようにclass名をふれますので、かなりスタイルの幅が広がります。

class = "index | item | archive | static_page , mobile | desktop , home-page , xxx"

CSSサンプル
.post{...}
body.index .post{...}
body.item .post{...}
body.archive .post{...}
body.static_page .post{...}

テンプレートの変更

変更個所
<body expr:class='&quot;loading&quot; + data:blog.mobileClass'>
出力結果
<body class='loading'>
↓ ページタイプのクラス名を追加する場合
<body expr:class="&quot;loading&quot; + (data:blog.isMobile         ? data:blog.mobileClass         : &quot; desktop&quot;) + &quot; &quot; + data:blog.pageType">
出力結果
<body class='loading desktop index'> 

ページタイプ

インデックス ページ index
個々の投稿記事 item
アーカイブ archive
ページ static_page

更に、ホームページと特定のページのclass名を追加する
<body expr:class='&quot;loading&quot; + (data:blog.isMobile         ? data:blog.mobileClass         : &quot; desktop&quot;) + (data:blog.url==data:blog.homepageUrl         ? &quot; home-page&quot;         : (data:blog.canonicalUrl in {"http://wed@.blogspot.com/p/my-page.html"}         ? &quot; about-us&quot;         : &quot;&quot;)) + &quot; &quot; + data:blog.pageType'>
出力結果
ホームページの場合
<body class='loading desktop home-page index'> 
指定したページの場合
<body class='loading desktop about-us static_page'> 
data:blog.canonicalUrlは、必ず http://xxx.blogspot.com/xxx で表示されるので、海外から閲覧した場合でも、https で閲覧した場合でも結果が保証されるはず。指定する場合は、アドレスバーに表示されているURLを http://xxx.blogspot.com/xxx  にして指定する事。

google prettyprint について

Quick Edit Pencil
TAGO.OK SAMPLES

1.dark
prettyprint dark linenums pre-wrap pre-line h-scrool

2.light
prettyprint light linenums pre-wrap pre-line h-scrool

3.light-monochrome
prettyprint light-monochrome linenums pre-wrap pre-line h-scrool

4.night-blue
prettyprint night-blue linenums pre-wrap pre-line h-scrool

5.vibrant-ink
prettyprint vibrant-ink linenums pre-wrap pre-line h-scrool

6.wed
prettyprint wed linenums pre-wrap pre-line h-scrool

何かと便利に使えるprettyprintのリンクです。

2015年の記事でなかなかよくまとまっています。

Google Code Prettifyの設定方法を解説。 Syntax Highlighterから乗換え、高速化にも最適 | エス技研

スタイル集です

Color themes for Google Code Prettify

PowerShell初心者に役立ちそうな事

Quick Edit Pencil
リンク集
PowerShellで文字列検索してみよう
http://excel.wp.xdomain.jp/?p=88

Powershellの正規表現と置換の習得
http://qiita.com/lucky_happy_jicchoku_engineer/items/6b5e40c6b4399e36fb4d

PowerShellでファイルのディレクトリパスや上位ディレクトリ名を取得する方法
http://win.just4fun.biz/PowerShell/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%83%91%E3%82%B9%E3%82%84%E4%B8%8A%E4%BD%8D%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E5%90%8D%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95.html

PowerShellで文字列をカンマなどの区切り文字で区切り配列に格納する
http://win.just4fun.biz/PowerShell/%E6%96%87%E5%AD%97%E5%88%97%E3%82%92%E3%82%AB%E3%83%B3%E3%83%9E%E3%81%AA%E3%81%A9%E3%81%A7%E5%8C%BA%E5%88%87%E3%82%8A%E6%96%87%E5%AD%97%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E9%85%8D%E5%88%97%E3%81%AB%E6%A0%BC%E7%B4%8D%E3%81%99%E3%82%8B%E3%83%BBSplit.html
Windows PowerShell : UNIXの cut コマンド相当の作業をする。
★列を削除するでたどり着いた解決策

Select-Object を ForEach-Object (省略形 %) に変更すると出なくなる。
PS C:\temp> Get-Content “.\list.txt” | % { $_.Split(“,”)[0] + ” ,  ” + $_.Split(“,”)[1] }
Yamada Taro  ,   Tokyo
Yamada Jiro   ,  Tokyo
Sasaki Ichiro   ,  Chiba
Suzuki Saburo  ,   Hokkaido
Yamaguchi Shiro  ,   Niigata
PS C:\temp>

http://techtech.mods.jp/wpt/20110122-2750
Linuxコマンドでテキストデータを自在に操る
★テキストデータ処理の理解が進む

ファイルを縦に結合  cat
ファイルを横に結合  paste, join
行の抽出  grep
列の抽出  cut, awk
行の変換  sed
http://orangain.hatenablog.com/entry/20100916/1284631280

よく使う簡単な正規表現

Quick Edit Pencil

ディレクトリパスやアドレスの最後のディレクトリ名を取得
最後にマッチした以降のデータ取得
powershellで正規表現に一致した文字列を取得
カレントディレクトリ名を取得する4つの方法
タグ
■その1

$urls = @"
E:\Pictures\EOS D30\100CANON
E:\Pictures\EOS D30\110CANON
E:\Pictures\EOS D30\114CANON
"@

$pat = ".*\\([^\\]+)\\([^\\]+)$"
$regex = [regex]$pat
$regex.Matches($urls) | foreach {
    $_.Groups[1].Value + "," + $_.Groups[2].Value
}

■その2

my $S = 'D:\PROGRAM\ANALYZE\LAN\data0123.dat';
## 正規表現
$S =~ m/.*\\([^\\]+)$/;
print $1;

■その3

$urls = @"
http://blog.livedoor.jp/morituri/archives/54111954.html
http://blog.livedoor.jp/morituri/archives/54105843.html
"@

$pat = "archives/([^/]+\.html)"
$regex = [regex]$pat
$regex.Matches($urls) | foreach {
    $_.Groups[1].Value
}
・出力結果
54111954.html
54105843.html

■その4

cd /home/smith/music
pwd | sed 's,^\(.*/\)\?\([^/]*\),\2,'
music

■その5

<a.*?>(.*?)</a> 後方参照 $1

PowerShellで複数ファイルのプロパティを取得する方法(準備編)

Quick Edit Pencil

プロパティの詳細を一括でリストで書き出すPowerShellスクリプト

完成したスクリプトは別ページにて完成編として公開しています。


PowerShellで画像のプロパティを書き出す




PowerShellで詳細プロパティの値を取得する(フォルダーを指定して複数ファイルを対象)

$shell=New-Object -Com Shell.Application

Get-ChildItem D:\Pictures\EOS` D30 -recurse | Where-Object {-not $_.PSIsContainer} | ForEach-Object {$folderobj=$shell.NameSpace($_.DirectoryName);$item=$folderobj.ParseName($_.name);$folderobj.GetDetailsOf($item,22)}>test.txt

凡例
任意指定  ` はpath記述でスペースをエスケープ
      22はプロパティ詳細の説明のタイトル項目の番号(末尾に一覧番号あり)
オプション -recurseはサブフォルダも含む
      >は上書き、>>は追記

別の書き方として、次の「若手基盤系SEの日記。」さんのスクリプトでも同じ結果が得られます。

Get-ChildItemはオプションの指定で、拡張子やファイル名、ファイルサイズなどで検索して結果が得られます。

以下参考にしたサイト様


PowerShellで詳細プロパティの値を取得する(フォルダーを指定して複数ファイルを対象)

若手基盤系SEの日記。
大量のWordファイルのページ数を簡単に集計する方法(Powershell)
http://blog.livedoor.jp/ryanorano/archives/2015-05-13.html

# 指定されたパス配下のファイルのファイル名とページ数をCSV出力する。

# 変数
$path = "D:\temp"
$output = $path + "/output.csv"

# 指定されたパス配下のファイルを取得
$target = Get-Childitem $path | Where-Object {-not $_.PSIsContainer}

# WSHのShellオブジェクトを生成
$shell = New-Object -Com Shell.Application

# ファイル分だけ繰り返す
$target | ForEach-Object {

    # GetDetailsOfに必要なオブジェクト
    $folderobj = $shell.NameSpace($_.DirectoryName)
    $item = $folderobj.ParseName($_.name)

    # ファイル出力
    $_.name + "`," + $folderobj.GetDetailsOf($item,148) | Add-Content $output
}

@IT
PowerShellのGet-ChildItemコマンドレットでファイル名の一覧を取得する(基本編)
http://www.atmarkit.co.jp/ait/articles/0808/22/news129.html

PS > Get-ChildItem ……パラメータなしで実行する

PS > Get-ChildItem C:\Windows ……フォルダを指定して実行する

拡張子が「.log」「.dat」であるもので、かつ、ファイル名が「KB*」で始まらないファイルだけを抽出することができる
PS > Get-ChildItem C:\Windows\*.* -include *.log,*.dat -exclude KB* ……名前を限定して実行する

ファイルの属性情報や最終更新日、サイズなどの付随情報が不要で、フォルダ/ファイル名だけを確認したいという場合には、-Nameオプションを使用
PS > Get-ChildItem C:\Windows\*.* -include *.log,*.dat -exclude KB* -Name > c:\result.txt

PS > Get-ChildItem C:\Windows -Recurse ……サブフォルダの内容も表示する

PS > Get-ChildItem C:\Windows -Recurse -Name ……サブフォルダも含めて、名前だけを表示させる

検索やソートの方法も参考になる
PowerShellのGet-ChildItemコマンドレットでファイル名の一覧を取得する(応用編)
http://www.atmarkit.co.jp/ait/articles/0808/29/news131.html

PowerShellで詳細プロパティの値を取得する(単一ファイル)

PowerShellをはじめよう ~PowerShell入門~
https://letspowershell.blogspot.jp/2015/11/powershell_18.html

# 詳細プロパティの取得

# シェルオブジェクトを作成
$Shell = New-Object -ComObject Shell.Application

# フォルダの指定
$Folder = $Shell.NameSpace("C:\PowerShell")

# ファイルの指定
$File = $Folder.parseName("P001.JPG")

# 詳細プロパティ(撮影日時)の取得
$GET = $Folder.GetDetailsOf($File,12)

Write-Host $GET

PowerShell from Japan!! Blog
プロパティを抽出する Select-Object (PowerShell入門)
http://blog.powershell-from.jp/?p=283

Get-ChildItemコマンドレットで取得可能なプロパティ
PS C:\Work> Get-ChildItem | Get-Member -MemberType property

Get-ChildItemで取得できる結果からFullNameとLastWriteTimeの列のみを抜き出し
PS C:\Work> Get-ChildItem | Select-Object FullName, LastWriteTime

その他

Windows管理者のためのPowerShell
オブジェクト操作系コマンドレット
http://powershell.wiki.fc2.com/wiki/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%93%8D%E4%BD%9C%E7%B3%BB%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%AC%E3%83%83%E3%83%88
■「Get-ChildItem」を実行すると、カレントフォルダにある各ファイルの情報(Mode,LastWriteTime,Length Name)がFileInfoオブジェクトに格納されます。
5個のファイルがカレントフォルダに存在する場合、5個のFileInfoオブジェクトが配列となって出力されます。
Get-ChildItem | ForEach-Object {$_.Name + " : " + $_.Length}

■「ForEach-Object」は、「%」で置き換えることができます。
Get-ChildItem | % {$_.Name + " : " + $_.Length}

Qiita
【備忘録】PowerShell 指定したフォルダ以下の全てのファイルの絶対パスを取得する
http://qiita.com/gyokufoo/items/56ea98116f9e559126f0
Get-ChildItem -Recurse | select-object fullname
-append を追加すると追記になるはず
コマンドを二回に分けて実行するときなどは、使えるかもしれない
Get-ChildItem -Recurse | select-object fullname | out-file "sample.txt" -width 500 -append

PowerShellでファイルのディレクトリパスや上位ディレクトリ名を取得する方法 
http://win.just4fun.biz/PowerShell/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%83%91%E3%82%B9%E3%82%84%E4%B8%8A%E4%BD%8D%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E5%90%8D%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95.html
ディレクトリまで(ファイル名を除く) 
(Get-Item <ファイル>).DirectoryName
or
(Get-ChildItem <ファイル>).DirectoryName

Powershell 重複要素 異なる要素の出力と配列結合 
http://viewse.blogspot.jp/2013/08/powershell.html
ヒント
3)2つの配列を結合して、重複要素を重複させないようにする
$unionArr = $array1 + $array2 | Select-Object –Unique
追加参照
◆オブジェクトのキー重複を取り除く
http://mtgpowershell.blogspot.jp/2011/08/blog-post.html

【プロパティの番号リスト】
Delphi Programming
816_ファイルのプロパティ
http://mrxray.on.coocan.jp/Delphi/plSamples/816_FileProperty.htm

000 名前
 001 サイズ
 002 項目の種類
 003 更新日時
 004 作成日時
 005 アクセス日時
 006 属性
 007 オフラインの状態
 008 オフラインで利用可能
 009 認識された種類
 010 所有者
 011 分類
 012 撮影日時
 013 参加アーティスト
 014 アルバム
 015 年
 016 ジャンル
 017 指揮者
 018 タグ
 019 評価
 020 作成者
 021 タイトル
 022 件名
 023 分類項目
 024 コメント
 025 著作権
 026 トラック番号
 027 長さ
 028 ビット レート
 029 保護
 030 カメラのモデル
 031 大きさ
 032 カメラの製造元
 033 会社
 034 ファイルの説明
 035 プログラム名
 036 継続時間
 037 オンライン
 038 再帰
 039 場所
 040 任意出席者アドレス
 041 任意出席者
 042 開催者住所
 043 開催者名
 044 アラーム時刻
 045 必須出席者アドレス
 046 必須出席者
 047 リソース
 048 会議の状態
 049 空き時間情報
 050 合計サイズ
 051 アカウント名
 052 進捗状況
 053 コンピューター
 054 記念日
 055 秘書の名前
 056 秘書の電話
 057 誕生日
 058 住所 (会社)
 059 市 (会社)
 060 国/地域 (会社)
 061 私書箱 (会社)
 062 郵便番号 (会社)
 063 都道府県 (会社)
 064 番地 (会社)
 065 FAX 番号 (会社)
 066 会社のホーム ページ
 067 会社電話
 068 コールバック番号
 069 自動車電話
 070 子供
 071 会社代表電話
 072 部署
 073 電子メール アドレス
 074 電子メール2
 075 電子メール3
 076 電子メールの一覧
 077 電子メール表示名
 078 表題2
 079 名
 080 氏名
 081 性別
 082 名2
 083 趣味
 084 住所 (自宅)
 085 市 (自宅)
 086 国/地域 (自宅)
 087 私書箱 (自宅)
 088 郵便番号 (自宅)
 089 都道府県 (自宅)
 090 番地 (自宅)
 091 自宅 FAX
 092 自宅電話
 093 IM アドレス
 094 イニシャル
 095 役職
 096 ラベル
 097 姓
 098 住所 (郵送先)
 099 ミドル ネーム
 100 携帯電話
 101 ニックネーム
 102 勤務先所在地
 103 住所 (その他)
 104 ほかの市区町村
 105 他の国/地域
 106 他の私書箱
 107 他の郵便番号
 108 他の都道府県
 109 他の番地
 110 ポケットベル
 111 肩書き
 112 市区町村 (郵送先)
 113 国/地域
 114 私書箱 (郵送先)
 115 郵便番号 (郵送先)
 116 都道府県
 117 番地 (郵送先)
 118 プライマリ電子メール
 119 通常の電話
 120 職業
 121 配偶者
 122 サフィックス
 123 TTY/TTD 電話
 124 テレックス
 125 Web ページ
 126 内容の状態
 127 内容の種類
 128 取得日時
 129 アーカイブ日時
 130 完了日
 131 デバイス カテゴリ
 132 接続済み
 133 探索方法
 134 フレンドリ名
 135 ローカル コンピューター
 136 製造元
 137 モデル
 138 ペアリング済み
 139 クラス
 140 状態
 141 クライアント ID
 142 貢献者
 143 コンテンツの作成日時
 144 前回印刷日
 145 前回保存日時
 146 事業部
 147 ドキュメント ID
 148 ページ数
 149 スライド
 150 総編集時間
 151 単語数
 152 期限
 153 終了日
 154 ファイル数
 155 ファイル名
 156 ファイル バージョン
 157 フラグの色
 158 フラグの状態
 159 空き領域
 160 ビットの深さ
 161 水平方向の解像度
 162 幅
 163 垂直方向の解像度
 164 高さ
 165 重要度
 166 添付
 167 削除
 168 暗号化の状態
 169 フラグの有無
 170 終了済
 171 未完了
 172 開封の状態
 173 共有
 174 製作者
 175 日付時刻
 176 フォルダー名
 177 フォルダーのパス
 178 フォルダー
 179 参加者
 180 パス
 181 場所ごと
 182 種類
 183 連絡先の名
 184 履歴の種類
 185 言語
 186 最終表示日
 187 説明
 188 リンクの状態
 189 リンク先
 190 URL
 191 メディアの作成日時
 192 リリース日
 193 エンコード方式
 194 プロデューサー
 195 発行元
 196 サブタイトル
 197 ユーザー Web URL
 198 作者
 199 添付ファイル
 200 BCC アドレス
 201 BCC
 202 CC アドレス
 203 CC
 204 会話 ID
 205 受信日時
 206 送信日時
 207 送信元アドレス
 208 差出人
 209 添付ファイルの有無
 210 送信者アドレス
 211 送信者名
 212 ストア
 213 送信先アドレス
 214 To do タイトル
 215 宛先
 216 経費情報
 217 アルバムのアーティスト
 218 アルバム ID
 219 ビート数/分
 220 作曲者
 221 イニシャル キー
 222 コンパイルの一部
 223 雰囲気
 224 セットのパート
 225 期間
 226 色
 227 保護者による制限
 228 保護者による制限の理由
 229 使用領域
 230 EXIF バージョン
 231 イベント
 232 露出補正
 233 露出プログラム
 234 露出時間
 235 絞り値
 236 フラッシュ モード
 237 焦点距離
 238 35mm 焦点距離
 239 ISO 速度
 240 レンズ メーカー
 241 レンズ モデル
 242 光源
 243 最大絞り
 244 測光モード
 245 向き
 246 人物
 247 プログラムのモード
 248 彩度
 249 対象の距離
 250 ホワイト バランス
 251 優先度
 252 プロジェクト
 253 チャンネル番号
 254 この回のタイトル
 255 字幕
 256 再放映
 257 SAP
 258 放送日
 259 プログラムの説明
 260 記録時間
 261 ステーション コール サイン
 262 局名
 263 概要
 264 抜粋
 265 自動要約
 266 検索のランキング
 267 秘密度
 268 共有ユーザー
 269 共有状態
 270 製品名
 271 製品バージョン
 272 サポートのリンク
 273 ソース
 274 開始日
 275 課金情報
 276 完了
 277 仕事の所有者
 278 総ファイル サイズ
 279 商標
 280 ビデオ圧縮
 281 ディレクター
 282 データ速度
 283 フレーム高
 284 フレーム率
 285 フレーム幅
 286 総ビット レート

Xperia SP (C5302) root化 メモ

Quick Edit Pencil
SONY Xperia SP のルート化

端末(デバイス)の使用者から管理者になる事
Androidのシステムファイルを自由に操作できる権限を取得する事

:::

必要なツール

FlashTool
http://www.flashtool.net/
SONY端末のカスタマイズには必要不可欠なツール
FlashToolの使い方 下記ブログが参考になりそう

:::


root化

【ROOT】 Easily root Xperia SP firmware version 12.0.A.2.254. - xda-developers
http://forum.xda-developers.com/showthread.php?t=2440375

参考になりそうな日本語情報

以上でroot化できる
Androidは初めてで、情報集めに時間がかかったが
root化作業は簡単だった


:::

システムファイル編集に必要なツール

アプリは入れたくないので、パソコンからリモート操作できるようにする

Android SDK ( Android SDK | Android Developers )
http://developer.android.com/sdk/index.html

パソコンでAndroid向けソフトウェアを開発するための開発環境
Windows版、Mac OS X版、Linux版がある
Android SDK の使い方 下記ブログが参考になりそう

Android ADB Shell を使うためには(USB接続含む) | IT Memo

Read-only file system の解決


adb shell
su

mount
list all mount points that we have and we can see, in my case, that /dev/stl12 was mounted on /system as ro (ready only), so we just need do:

mount -o rw,remount /system

 or

mount -o rw,remount /dev/stl12 /system


で解決できた




:::

FlashTool - SONY EMMA - ってなんだ

SONYが出した初期化ツールらしい
SONY公式のアンロックしたデバイスが対象っぽく
EMMAではroot化は無理っぽいし初期化も無理っぽい

Flash tool for Xperia™ devices – Developer World
http://developer.sonymobile.com/services/flash-tool/


:::

SoftBank MMS を使えるようにする


/system/etc/customization/settings/com/sonyericsson/ 以下に /provider/useragent(755)

custom_settings.xml(644)

<?xml version="1.0" encoding="UTF-8"?>
<settings version="1">
<setting key="mms-useragent">iPhoneOS/3.0 (7A341)</setting>
</settings>

※SoftBank/1.0/Smart/MyrMMS




blenderフリースタイルを初めて使う

Quick Edit Pencil
https://sites.google.com/site/suzanneclubb3d/home/tips


2. Freestyleの設定

■RenderタブでFreestyleのチェックボックスをONにする

■RenderLayersタブ Freestyleパネル Control modeを"Parameter Editor Mode"にする
 これにより、GUIからFreestyleのエッジ設定が可能になる

■CreaseAngleを120°程度に設定。
 CreaseAngle:エッジを描線するエッジ角度のしきい値 今回は角部にエッジを出したいのでCreaseエッジを設定します

■Cullingにチェック
 ビュー外のエッジを無視します、レンダリング時間短縮に有効

■FreestyleLineSetメニューの+ボタンを押し、LineSetを作成
 Selection by Visibilityにチェック
 Selection by Edge Typeにチェック

■LayerパネルのIncludeのチェックボックスを、SkyとFreestyleを残してチェックを外す
 Freestyleの描線だけ表示するため

※GDにPDFで魚拓済み

「Objet Mode」でオブジェクトの大きさを変更した場合の数値反映方法

Quick Edit Pencil
「Objet Mode」でオブジェクトの大きさを変更した場合、エディットモードに移動しても表示される数値を揃えるためには、Ctrl+Aで"Scale"(大きさ)の設定を反映させる必要があります。

googleドライブのホスティングが使えない 403. That’s an error.

Quick Edit Pencil

2016/09/18 02:50

googledrive.com/host/

Google Drive ホスティング終了

ホスティングアドレスを直接参照する事ができない

調べると、「新しい Google ドライブ」の運用が始まっている

ドライブでウェブページをホストする機能がなくなっているので

いままで提供されていたホスティングURLを参照する事はできなくなっています

ドライブでウェブページをホストする - ドライブ ヘルプ

https://support.google.com/drive/answer/2881970?hl=ja&ref_topic=2375192

急いで引っ越しする必要がありますよ

 

Error 403 (Forbidden)!!1

403. That’s an error.

We're sorry, but you do not have access to this page. That’s all we know.

スクリーンショット 2014 09 18 2 55 34

 

今後というか既に、ファイルの参照はGoogleドライブビューア等のアプリが必要なようです

ちなみに、Googleドライブビューアで、Flash(swf)ファイルを参照すると下画像のようになります

スクリーンショット 2014 09 18 3 22 56

 

複数列を一列に並べる

Quick Edit Pencil
表計算ソフトエクセルExcelとかスプレッドシートとかで、複数列を一行にまとめて並べる方法


OFFSET関数を使う簡単な方法です。行と列のパラメータで距離を設定できます。


=offset(D$3, MOD(ROW(D3)-3,$B$16),ROUNDDOWN((ROW(D3)-3)/$B$16)*$B$17)



複数行を一行にまとめる

Quick Edit Pencil
表計算ソフトエクセルExcelとかスプレッドシートとかで、複数行を一行にまとめて並べる方法

OFFSET関数を使う簡単な方法です。

連続する複数行を一行に並べる



行間隔のある複数行を一行に並べる




両方とも数式は下記の感じです。行の距離のパラメータを変えればオッケーです。


=OFFSET($C2,ROUNDDOWN((COLUMN(C2)-3)/$C$25)*$C$24,MOD(COLUMN(C2)-3,$C$25))

詳しくは以下をどうぞう。宅急便の料金を参考にしています。


VMware Player 仮想ディスクの縮小

Quick Edit Pencil

ゲストOSのハードディスクサイズを縮小したい! 


仮想マシン内で VMware Converter を使用して、仮想マシンから仮想マシンへの移行を実行することで仮想ディスクの縮小に成功した!

VMware vCenter Converterを使い物理マシンから仮想マシンに移行した仮想ディスクの縮小方法を探る

私の環境は...

ホスト:Windows 10 Pro
ゲスト:Windows XP Home Edition
仮想実行:VMware Workstation Player 6

状況は...

物理マシンのハードディスクの使用領域が90%を超えていたが、データ整理を行わないまま仮想マシンに移行した...


移行した仮想マシンのデータ整理を行ったら、仮想ディスクの使用領域が30%になったが、仮想ディスク(VMDK)のファイルサイズは小さくならず、ホストのストレージを無駄に圧迫している。

縮小改善策1...は失敗

仮想ディスクから仮想ディスクへのOSクローン

物理環境であれば、OS(Cドライブ)を新しいHDDにクローンすることで希望のディスクに交換ができる。これと同じ要領の次の記事を参考に試してみたが、ゲストOSが上手く起動しなかった。


縮小改善策2...は成功

仮想マシンから仮想マシンへの移行

次の記事によると、VMware vCenter Converterは「仮想マシンを物理マシンとみなすことによって、実行中の仮想マシンに対して操作を実行できます。」とのことなので、VMware Converter ウィザードを使って、小さなディスクサイズの仮想マシンに移行し、仮想マシンの実行にも成功した。



仮想マシンから移行した仮想マシン(ゲストOS)のキーボードデバイスのドライバを日本語配列にする必要があったが、他の環境は変わらず実行できた。

Windows 10のプロダクトキーの確認

Quick Edit Pencil
パワーシェルにて下記で表示確認


wmic path SoftwareLicensingService get OA3xOriginalProductKey

Windows 10ではじめてバックアップする時に理解すべきバックアップ機能の違い

Quick Edit Pencil

最初に三つのバックアップ機能の存在を把握する必要あり

Windows 10には、次の三つのバックアップ機能が備わっており、それぞれ役割が違うことを覚えておきます。

1、ファイル履歴
2、ファイルのバックアップ
3、システムバックアップ(システムイメージの作成)

はじめてのバックアップは超難関ですが...

初心者の方は、Windows 10のバックアップ機能の違いをしっかりと理解する必要があります。

諦めず根気よくバックアップ機能の違いを理解する努力をしましょう!

以下、簡単ではありますがWindows 10のバックアップ機能の違いまとめてみました。

モバイルルーターとパラボラアンテナ

Quick Edit Pencil

JN-IPS2716WQHD用モニタースタンドの工作

Quick Edit Pencil

JAPANNEXT WQHD対応 27型ワイド液晶ディスプレイ「JN-IPS2716WQHD」ですが、スタンドが非常に残念なので横幅バッチリな専用の卓上モニター台を自作




卓上モニター台としてAmazon.co.jpでも多数販売されてますが、サイズがジャストではないのでホームセンターで材料を調達して「JN-IPS2716WQHD」専用台を自作しました。


Win10でPDFの中身を検索する方法

Quick Edit Pencil
オーエスは Windows 10 Pro 64bit


Windows10でPDFの中身を検索デキない時は次を試してみましょう。


以下のAdobeのページにあるように、HKEY_CLASSES_ROOT\.pdf\PersistentHandler を {1AA9BF05-9A97-48c1-BA28-D9DCE795E93C} にする。

Acrobat Help  /
iFilter PDF search stops working on Windows 8 x64
PDF search breaks after 11.0 install of Adobe Acrobat or Reader
https://helpx.adobe.com/acrobat/kb/pdf-search-breaks-110-install.html

再起動後、インデックスオプション>ファイル種類>pdf拡張子が「登録されているifilterが見つかりません」から「Reader Search Handler」にかわった。

インデックスを再構築してオッケーでしょう。

Windows/Windows Search/PDFファイルのインデックス - yanor.net/wiki
http://yanor.net/wiki/?Windows%2FWindows%20Search%2FPDF%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9

ヤバい!JAPANNEXT WQHD対応 27型ワイド液晶ディスプレイ「JN-IPS2716WQHD」を注文してみた!!!

Quick Edit Pencil
注文翌日にはブツが届き、梱包も本体にもおおむね満足している。通電も映像も設定も問題はない。メーカー対応は未知数だが品物はクールだ。さらに詳しくは下に...

何かと怪しさ満点のJAPANNEXT IPS液晶モニターのJN-IPS2716WQHD 27型 WQHD ディスプレイをアマゾンで注文してみたレポ。2016・5・5

JN-IPS2716WQHD 27型 WQHD モニター 60Hz対応ワイド液晶ディスプレイ (2560×1440 ) HDMI/DVIポート搭載

メーカー商品画像:JAPANNEXT 27型 WQHD ディスプレイ JN-IPS2716WQHD


アマゾンが発送するので品物が届かないという不安は無さそうなのでお遊びで注文してみたが...


Chrome アプリ ランチャーの廃止と代替ランチャー

Quick Edit Pencil
Chrome アプリ ランチャーが2016年7月に廃止される

Google Developers Japan: Chrome アプリ ランチャーの廃止

ウチのウインドウズ環境ではChrome アプリ ランチャーの代わりは、QTTabBarが務めてくれそう

アプリケーションランチャーに登録する

Chrome アプリショートカットのプロパティから値をとって、QTTabBarのアプリケーションランチャーに登録する。

C:\Program Files (x86)\Google\Chrome\Application\chrome.exe を パスにコピペ
プロパティのリンク先 >>> 引数にコピペ
作業フォルダ に C:\Program Files (x86)\Google\Chrome\Application をコピペ

option_6_app.png

日本語キーボードのノートPCで外付け英語キーボードを使用する方法

Quick Edit Pencil
設定

windows8.1環境では日本語キーボード配列で認識されたので、英語配列キーボードとして使えるように下記記事を参考に設定しなおした。

[Windows 8] 日本語キーボードのノートPCで外付け英語キーボードを使用する方法

blog.shos.info/archives/2012/11/windows_8_pc.html

Thinkpad W550s Windows10(64 ビット) クリーンインストール(ドライバとユーティリティ)メモ

Quick Edit Pencil


ThinkPad W550s にWindows 10 をクリーンインストールした後のドライバーとレノボユーティリティのインストールメモ
Windows 10クリーンインストール後、すぐにWindows Update を通じてディスプレイドライバを検索してくれるのだが、この自動更新を待たずに後出のディスプレイ ドライバーをインストールすると、NVIDIAのコンパネが上手く動いてくなかったので、Windows Update でディスプレイドライバの更新通知が来るまで気長に待つのが吉。

ドライバのインストール


デバイスマネージャーから?マークの付いたデバイスのプロパティからドライバを更新(自動検索)すると必要なドライバがダウンロードされインストールが完了する。

上記の方法で?の付いたデバイスのすべてにドライバーはインストールできるが、次の二つのドライバは別途インストールする必要があった。
  1. マウスとキーボード
    Synaptics ThinkPad UltraNav ドライバー (Windows 10 32bit, 64bit) - ThinkPad  (n1cgx16w.exe)
  2. ディスプレイとビデオグラフィックス
    NVIDIA Geforce/Quadro ディスプレイ ドライバー (Windows 10 64bit) - ThinkPad T550, W550s (n11dp16w.exe)

他のドライバのダウンロードが必要であればレノボのサポートサイトからドライバを選ぶ


その他に、ThinkVantage システム アップデート をインストールすれば更新の必要なドライバーを教えてくれる。ThinkVantage システム アップデートは上記のサポートサイトからダウンロードできる。


ユーティリティのインストール

  1. Lenovo Settings(Windowsストアアプリ)
    ※インストール起動後ドライバを請求されダウンロードページに飛ばされるので、前出のサポートサイトから事前にドライバをインストールするのが吉。
    ソフトウェアとユーティリティカテゴリから次の二つをインストール
    ・Lenovo システム インタフェース Foundation
    ・ThinkPad Settings Dependency パッケージ
  2. ホットキー機能統合 (Windows 10 32bit, 64bit/ 8.1 32bit, 64bit) - ThinkPad
    このパッケージは、お使いのPCのための特殊キーやボタンに関連するユーティリティ(サブパッケージ)を提供します。
    こちらも前出のサポートサイト、ソフトウェアとユーティリティカテゴリから
  3. Lenovo パフォーマンス チューナー - ThinkStation / ThinkPad
    主な焦点は、シングルスレッドで動作するアプリケーションを最適化し、システムのパフォーマンスを向上させることです。
    こちらも前出のサポートサイト、ソフトウェアとユーティリティカテゴリから

ウインドウズ10ヘルプ

Blender: 透過設定のオブジェクトにUVマッピングはぼやける

Quick Edit Pencil
Blender v2.73

UVマッピングした画像のぼやけを解消解決

  1. プロパティーズ の テクスチャ の▼画像 のアルファにチェックをいれPremultiply(プリマルチプライ)を選択。
  2. プロパティーズ の テクスチャ の▼影響 の アルファにチェックを入れる。
透過設定オブジェクトの透過を切らなければ、

UVマッピングした画像もぼやけて(透過)しまうが、

UVマッピングした画像の透過部分は透明にすることで、

オブジェクトの透過を切らずにハッキリと表示させることができる。

参考リンク先
Blender操作忘備録 : 透過画像の透過部分は透明にしたい!のメモ - livedoor Blog(ブログ)

魚拓
https://drive.google.com/file/d/0B1aIrbcbrIYkWm91dGY1QjVSUHc/view?usp=sharing