金曜日, 8月 15, 2025

Photoshopは描画モードの変更だけでも遊べる



Photoshopは描画モードの変更だけでも遊べる

[イメージ]>[色調補正]>[彩度を下げる]で疑似グレースケール化


この段階のレイヤーの関係です。ここで、彩度を下げたグレー画像の描画モードを変更するだけでイメージを激変させられます。

オーバーレイの結果
ソフトなコントラスト(その1)を得る事が出来ます。

ソフトライトの結果
ソフトなコントラスト(その2)を得る事が出来ます。
ビビッドライトの結果
いい感じにコントラストがつきます。

ハードミックスの結果
イラスト風のイメージが得られます。

TCDW8494 
コレって日焼け止めしててもOKなのかな?

Baby Alien 123
全身派手めのタイツで驚く(^o^)
この時期、快晴なら引きこもり、曇天なら散歩〜ですね。お日様に当たってビタアミンDを摂取するのは大切ですからね。もっともコレって日焼け止めしててもOKなのかな?(^o^)

木曜日, 8月 14, 2025

JavaScriptでAI遊び 60 
IllustratorでCMYK設定を5%刻みに変更

諸般の事情で作成しました。
選択したオブジェクトのCMYK設定を5%刻みに変更します。
ただしグループ化やグラデーション、パターンなどには対応しません。

ベースにしたデータを選択して実行・・・

function roundToNearestFive(value) {
return Math.round(value / 5) * 5;
}

function adjustCMYKtoNearestFive() {
if (app.documents.length == 0) {
alert("ドキュメントが開かれていません。");
return;
}

var doc = app.activeDocument;
var sel = doc.selection;

if (sel.length == 0) {
alert("オブジェクトを選択してください。");
return;
}

for (var i = 0; i < sel.length; i++) {
var obj = sel[i];

if (obj.filled && obj.fillColor.typename == "CMYKColor") {
var cmyk = obj.fillColor;
// 各 CMYK 値を 5% 刻みに四捨五入し、
            // 0〜100% の範囲に制限
cmyk.cyan = Math.min(100, Math.max
                (0, roundToNearestFive(cmyk.cyan)));
cmyk.magenta = Math.min(100, Math.max
                (0, roundToNearestFive(cmyk.magenta)));
cmyk.yellow = Math.min(100, Math.max
                (0, roundToNearestFive(cmyk.yellow)));
cmyk.black = Math.min(100, Math.max
                (0, roundToNearestFive(cmyk.black)));

obj.fillColor = cmyk;
}
}

alert("CMYK 値を 5% 刻みで四捨五入しました。");
}

adjustCMYKtoNearestFive();

それぞれのカラー設定。

実行すると直ぐに上のメッセージが表示されます。

処理結果です。

処理後のカラー設定。

TCDW8493 
剛毛の赤ちゃんを見るとびっくりします

Baby Alien 122
ツルピカ赤ちゃん(^o^)
私は2歳ぐらいまでツルピカ頭でした。なので剛毛の赤ちゃんを見るとびっくりします。実は親族にツルピカの人が居ません。そして幼児の時にツルピカなのは血筋だったようです。

水曜日, 8月 13, 2025

Illustratorでカラーデータをブレンドで作成

質問がありましたので・・・
Illustratorでカラーデータを作成する手順を整理しました。

一定の間隔で矩形を作成し、任意の色を設定し、1周するようにブレンドツールでブレンドを行います。

次に処理結果を選択したまま、ブレンドツールのオプションにて、ステップ数を任意設定します。ここでは8似設定し・・・

各辺を10としました。

続けてブレンド結果を拡張し・・・

水平あるいは垂直方向もブレンドを実行します。

処理結果に対して・・・
[編集]>[カラーを編集]>[オブジェクトを再配色]>[詳細オプション]>[編集]にて、
色相(H)
明度(S)
彩度(B)
を調整すれば・・・

オリジナルのカラーチャートが完成します。スオッチに登録して[スウォッチライブラリーを交換用とっして保存]すればPhotoshopやIOnDesignでも読み込んで利用することができます。

TCDW8492 
日本では色々な事情で絶望的でした

Baby Alien 121
耳ではなくて角が生えてきた赤ちゃん(^o^)
私は、牛乳を3日で2Lほど消費するので、アメリカのような大型ボトルで販売して欲しいと思っていたのですが、調べて見ると日本では色々な事情で絶望的でした(>_<)

火曜日, 8月 12, 2025

Blender Study Notes 59 
ボルトとナットはBoltFactoryが鬼便利

ボルトとナットのモデリングはアドオンツールのBoltFactoryが問答無用でBlenderが便利です。

[プリファレンス]>[アドオン]に入っていなければ・・・

サイトに入り、右下の[Get Add-on]をクリックし・・・

処理を選択します。

Blenderが起動直度であれば立方体を削除し・・・

[追加]>[メッシュ]>[Bolt]を選びます。

直後はサイズが小さいので拡大し、左下のオプションメニューをクリックします。

もし左下のオプションメニューが閉じてsh縞ったら、ボルトを右クリックして表示されるメニューから[Change Bolt]をクリックすればオプションメニューは復活します。

■Operator Presets
いくつかの形状のボルトのプリセットが用意。

オペレーターをデフォルトに復元
default
m3
m4
m5
m6
m8
m10
m12
※実際のm規格のプリセット。

■Model
ボルトかナットを設定。
BOLT(ボルト)
NUT(ナット)

■BitType
ネジ穴の形状を選べ、設定値でネジ穴の深さや大きさを変更。
NONE
ALLEN(アレン/六角ビット)
TORX(トルクス/六角星型のネジ頭)
PHILLIPS(フィリップス/プラスドライバー)

■ヘッド(Head)
ネジ山の形状を選べます。
NONE
HEX
12 POINT
CAP
DOME
PAN
COUNTER SINK

■Shank
ネジ山とネジらせん部分の中間部分の長さと太さの設定。

■スレッド(Thread)
主にネジらせん部分の細かい設定。

Thread Length (mm)
Major Dia (mm)
Minor Dia (mm)
Pitch (mm)
Crest Percent
Root Percdent
Div count

■整列
ワールド
ビュー
3Dカーソル

■位置

■回転

コレを使うだけでもBlenderは神です。

Blender 4.5.0

TCDW8491 
もともとあまり呑まない生活だったので

Baby Alien 120
金平豚(^o^)
コロナ禍で外出が激減し、仲間内で集まることがなくなってしまい、なんとなくお酒を止めてから、今日で2000日目になっていました。もともとあまり呑まない生活だったので、2000日もノンアルコール状態な事にピンときていません。

月曜日, 8月 11, 2025

Excel VBA 50 
Exccelで指定月のカレンダーを作成

Exccelで指定した年月のカレンダーを作成します。

Sub CreateCalendarFromUserInput()
Dim ws As Worksheet
Dim yearInput As Integer, monthInput As Integer
Dim startDate As Date, endDate As Date
Dim row As Integer, col As Integer, dayCounter As Integer

' シートを取得(カレンダーシートを作成・クリア)
Set ws = ThisWorkbook.Sheets("Sheet1")
' 必要に応じてシート名を変更
ws.Cells.Clear ' 既存のカレンダーをクリア

' ユーザーに年と月を入力してもらう
yearInput = InputBox("西暦を入力してください(例:2025)", _
"年の入力")
If yearInput < 1900 Or yearInput > 2100 Then
MsgBox "有効な年(1900?2100)を入力してください。", _
vbExclamation
Exit Sub
End If

monthInput = InputBox("月を入力してください(1?12)", _
"月の入力")
If monthInput < 1 Or monthInput > 12 Then
MsgBox "有効な月(1?12)を入力してください。", _
vbExclamation
Exit Sub
End If

' 開始日と終了日を設定
startDate = DateSerial(yearInput, monthInput, 1)
endDate = DateSerial(yearInput, monthInput + 1, 0)

' ヘッダーにタイトル
ws.Cells(1, 1).Value = yearInput & "年 " & monthInput & "月"
ws.Cells(1, 1).Font.Size = 14
ws.Cells(1, 1).Font.Bold = True
ws.Range("A1:G1").Merge
ws.Cells(1, 1).HorizontalAlignment = xlCenter

' 曜日ヘッダー
Dim daysOfWeek As Variant
daysOfWeek = Array("日", "月", "火", "水", "木", "金", "土")

' 曜日を2行目に設定
For col = 0 To 6
ws.Cells(2, col + 1).Value = daysOfWeek(col)
ws.Cells(2, col + 1).Font.Bold = True
ws.Cells(2, col + 1).HorizontalAlignment = xlCenter
ws.Cells(2, col + 1).Interior.Color = RGB(200, 200, 250)
' ヘッダーの背景色
Next col

' 日付を埋める
row = 3
col = weekDay(startDate, vbSunday) - 1
' 週の最初の曜日(0:日曜, 6:土曜)
For dayCounter = 1 To Day(endDate)
ws.Cells(row, col + 1).Value = dayCounter
ws.Cells(row, col + 1).HorizontalAlignment = xlCenter
col = col + 1
If col > 6 Then
col = 0
row = row + 1
End If
Next dayCounter

' セルのサイズ調整
ws.Cells.EntireColumn.AutoFit
ws.Range("A2:G2").Interior.Color = RGB(200, 200, 250)
' ヘッダー色
ws.Range("A3:G" & row).Borders.LineStyle = xlContinuous
' 罫線

MsgBox "カレンダーが作成されました!", vbInformation
End Sub

実行したら年月を入力すれば・・・

A2〜G8を利用してカレンダーを表示します。

TCDW8490 
事前に少しだけ処理してみたら良い結果だった

Baby Alien 119
ウェアがキツい〜(^o^)
雑草の処理は重曹を粉で散布してから水をまいてみました。事前に少しだけ処理してみたら良い結果だったので、本格的に処理してみました。安くて効果的ですね。

日曜日, 8月 10, 2025

写ルンです風撮影道 04 
炎天下でも場所によっては、いい感じでした?


今回は天気がやたらと良い日の実験(その2)です。カメラ環境は・・・
Panasonic LUMIX DMC-GF3
M.ZUIKO DIGITAL 17mm F1.8
M4/3カメラなので17mmは34mmになります。
マニュアルモード
ISO400
フォーカス距離3mにガムテープで固定
 ※今回に限り3mに設定してみました。
シャッター速度> 1/125(1/125の次は1/160なので)
絞り> F10

カット01
許せる範囲でセーフといったところでしょうか。

カット02
これも許せる範囲ですね。

カット03
暗部が完全につぶれてしまいました。なお、[レベル補正]>[自動補正]では暗部を救済できませんでした。

カット04
暗部が完全につぶれてしまいました。なお、このカットも[レベル補正]>[自動補正]では暗部を救済できませんでした。

カット04
CameraRawで露光を2絞り分調整してみました。

なかなか難しいですが、前回よりは良好な結果でした。この果を見ると本家「写ルンです」のネガカラーフィルムのラチュードの広さに驚くばかりです。

Panasonic LUMIX DMC-GF3
M.ZUIKO DIGITAL 17mm F1.8

TCDW8489 
もちろんデザートは別腹です

Baby Alien 118
ポッチャリが定番の種族(^o^)
何度もネタにしていますが、真夏でも私は食欲が落ちません。鍋焼きでもOKです(^o^)。夕食のシメは枝豆またはコーン。お酒はもともと家では飲まず、コロナ禍で完全に止めて5年(^o^)。もちろんデザートは別腹です。

土曜日, 8月 09, 2025

JavaScriptでAI遊び 59 
Illustratorでランダムなジグザグ線を描画(mm指定)

Illustratorでランダムなジグザグ線を描画します。前回はpoint指定でしたが、mm版を作りました。

(function () {
var doc = app.activeDocument;
var artboard =
        doc.artboards[doc.artboards.getActiveArtboardIndex()];
var abBounds = artboard.artboardRect;

var centerX = (abBounds[0] + abBounds[2]) / 2;
var centerY = (abBounds[1] + abBounds[3]) / 2;

var width = prompt("波の全体幅 (mm) を入力:", "150");
var amplitude = prompt("波の最大振幅 (mm) を入力:", "20");
var segments = prompt("波のセグメント数を入力:", "30");

if (isNaN(segments) || isNaN(width) || isNaN(amplitude)) {
alert("無効な数値が入力されました。");
return;
}
segments = parseInt(segments, 10);
width = parseFloat(width);
amplitude = parseFloat(amplitude);

// mm を pt に変換 (1 mm ≈ 2.83465 pt)
var mmToPt = 2.83465;
width *= mmToPt;
amplitude *= mmToPt;

var startX = centerX - width / 2;
var endX = centerX + width / 2;
var stepX = width / segments;

var newPath = doc.pathItems.add();
newPath.stroked = true;
newPath.filled = false;

var pathPoints = [];
for (var i = 0; i <= segments; i++) {
var x = startX + (stepX * i);
var y = centerY +
            (Math.random() * amplitude * 2 - amplitude);
pathPoints.push([x, y]);
}

newPath.setEntirePath(pathPoints);
alert("ランダムなジグザグ線を作成しました!");
})();

実行したら描画値を入力すれば・・・

ギザギザのランダムな線が描画されます。曲線にしたい場合は・・・

ライブコーナーで対処すればOKです。