月曜日, 6月 30, 2025

Illustratorの無駄知識26 
グラデーションでの立体化は分割が大切

3D機能を使った方が賢明ですが、使わずに立体化させたい場合はグラデーションで逃げ切るのも1つの手です。

適当な波線を作成し、複製を結合してリボン風のイメージを作成しました。このときのグラデーションの設定は分割数がポイントです。

左例では8分割なので100/8でポイント設定する位置を算出します。

あとは、0%、50%100%をそれぞれ指定するだけです。

ここでは黒で設定しています。
 
カラーリング変更は、アピアランズ等で対処可能です。

TCDW8448
最新版と比較してディスる意味があるんですかね〜

YouTubeで、私も所有している某カメラをディスる話を偶然視聴。正しい情報ではありますが、今更10年以上前のカメラを最新版と比較してディスる意味があるんですかね〜。

日曜日, 6月 29, 2025

Let's start JavaScript 73 
HTML上で指定画像をモノカラー表示

HTML上で指定画像をモノカラー表示させます。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0">
<title>モノカラー変換</title>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
margin: 10px;
background-color: black;
color: white;
}
canvas {
background: black;
display: block;
margin: 10px auto;
}
</style>
</head>
<body>
<h3>選択した画像をモノカラーに変換</h3>
<input type="file" id="imageInput"
accept="image/*"><br><br>
<label for="colorPicker">変換する色:</label>
<input type="color" id="colorPicker"
value="#ff0000">&emsp;
<button onclick="convertImage()">作成</button>
<br><br>
<canvas id="canvas"></canvas>

<script>
const fileInput =
document.getElementById("imageInput");
const colorPicker =
document.getElementById("colorPicker");
const canvas =
document.getElementById("canvas");
const ctx = canvas.getContext("2d");
let img = new Image();

// 画像を選択
fileInput.addEventListener("change", (event) => {
const file = event.target.files[0];
if (file) {
const reader = new FileReader();
reader.onload = function(e) {
img.src = e.target.result;
img.onload = () => {
canvas.width = img.width;
canvas.height = img.height;
ctx.drawImage(img, 0, 0);
};
};
reader.readAsDataURL(file);
}
});

function convertImage() {
if (!img.src) return;

ctx.drawImage(img, 0, 0);
const imageData =
ctx.getImageData(0, 0, canvas.width, canvas.height);
const data = imageData.data;
const selectedColor = hexToRgb(colorPicker.value);

for (let i = 0; i < data.length; i += 4) {
let gray = (data[i] + data[i + 1] + data[i + 2]) / 3;
if (gray < 128) {
data[i] = selectedColor.r;
data[i + 1] = selectedColor.g;
data[i + 2] = selectedColor.b;
} else {
data[i] = data[i + 1] = data[i + 2] = 255; // 白
}
}

ctx.putImageData(imageData, 0, 0);
}

function hexToRgb(hex) {
let r = parseInt(hex.substring(1, 3), 16);
let g = parseInt(hex.substring(3, 5), 16);
let b = parseInt(hex.substring(5, 7), 16);
return { r, g, b };
}
</script>
</body>
</html>

実行したら、処理したい画像ファイルを選択します。

ファイルを表示したら[変換する色]を設定して[作成]クリックすると・・・

指定色と白のモノカラーになります。

処理後でも[変換する色]を再指定して[作成]クリックすると・・・

処理結果に反映されます。

TCDW8447
胡散臭い商品を説明している音声生成AI

ネット広告で、胡散臭い商品を説明している音声生成AIと同じ音声を使っている時点で、その商品がどれだけまともでもオワコンですよね〜。

土曜日, 6月 28, 2025

modoローポリモデリング 57 
カボチャ形状の作り方はベベルがベース

カボチャ形状の作り方は円柱とベベル処理がベースです。

まず六角柱を作成します。七角柱でも八角柱でも大丈夫です。

次に六角柱の側面を選択し、グループ解除してベベル設定を行います。

続けてベベルで引き伸ばしは面の上のエッジを選択して拡大します。

ここでY軸をセンター合わせ設定として中心のポリゴンをベベルで縮小コピーします。

これをもう一度繰り返し・・・

内側へ凹まします。

再度ベベルで引き伸ばしは面の上のエッジを選択して拡大します。

ここで、側面を全選択して[編集]>[ループスライス]にて[カウント:1]を実行します。

続けて追加されたエッジを選択し、若干拡大させます。

ここで[サブディビジョンへ変換(Tab)]で丸め込んでから・・・

微調整を行います。

一番注意すべきは高さの調整です。どうしても扁平になってしまうので・・・

高さ調整すれば・・・

いい感じのカボチャ(ピーマン?)形状を得られます。後はこれをベースに求める形状に調整ですね。

TCDW8446
本当に何もないので、時々考え事したりしています

Baby Alien 096
座布団星人(^o^)
ふと思ったのですが、よく考えたら我が家には座布団がありません。座布団サイズのクッションはありますが・・・。四畳半の和室しかないので当然ですね。まっ、ここは本当に何もないので、時々考え事したりしています。

金曜日, 6月 27, 2025

Illustratorでの作図基本 22 
アンカーポイントツールはグリッドで決める

アンカーポイントツールはグリッドを活用すると製図のように処理出来ます。
 
50mm4分割のグリッドを設定し、塗りなしで5×4マスの矩形を作成します。結果として62.5×50mmの矩形になります。グリッドにスナップにチェックを入れれば正確に描画出来ます。これも元にゴミ箱を作図してみます。

最初にアンカーポイントツールで上図のように線の中心を1マス引き上げます。

同様にアンカーポイントツールで上図のように線の中心を1マス引き下げます。

こうして出来たハンドのを摘まんで上図のように1マス垂直位置に移動させます。

これを4箇所全て行うと、いい感じになります。次に4マス分の塗り無しの直線を描画し・・・

先ほどと同じようにアンカーポイントツールで上図のように線の中心を1マス引き下げ・・・

こうして出来たハンドのを摘まんで上図のように1マス垂直位置に移動させます。

これを上図のようにスナップさせれば正確な4:1.5の綺麗な楕円を得ることが出来ます。

あとは全体を選択して[パスファインダー]>[分割]後にグラデーションを設定すれば上図のようになります。

TCDW8445
文化庁がローマ字表記をヘボン式を基本とする見直し

文化庁がローマ字表記をヘボン式を基本とする見直しを行うそうですね。やっとか〜という感じです。訓令式は大嫌いでした。だからローマ字変換が嫌いだったんですよ〜(※)。そもそも訓令式だと読めないですからね。今回の見直しで私の名前「かいづ」も"KAIDU"ではなくて”KAIZU”になるようです。

※数年前に授業の関係で変更し、今はローマ字変換です。もちろんヘボン式での変換です。

木曜日, 6月 26, 2025

引き伸ばしレンズ遊び 01 
EL レンズはフード死守

「大昔のEL-NIKKORで撮影してみました」3回分も含めてリニューアルの連載としました。ELとは"Enlarger Lens"の略です。

今回はフードの話。引き伸ばしレンズは通常の撮影を考慮していないのでフレア・ゴーストが出やすくなります。


フードを付けないと順光(※)でもフレア・ゴーストが強烈に出てしまいます。

※被写体の正面から光が当たる状態のこと。反対が逆光。

SONY α NEX-6
EL-NIKKOR 80mm F5.6

そこで、黒いラシャ紙などでフードをしっかり作成しましたが、ラフな工作でも問題ないです。

手作りフード
市販フード
EL-NIKKOR 80mm F5.6
39-42mm 変換リング
7mm+14mmマクロチューブアダプタ
12〜19mmヘリコイドアダプタ
25.7mmマウントアダプタ

Panasonic LUMIX DMC-G3
LUMIX G VARIO 14-42mm/F3.5-5.6 ASPH
ストロボ発光

なお、ファインダーを上の様にならないようにフードの長さを調整します。なお、上はイメージです。

これで劇的にイメージが変わります。撮影時は死守しましょう。

SONY α NEX-6
EL-NIKKOR 80mm F5.6

TCDW8444
4月から6月が我が家では台湾パイナップル祭り

なんだか、今年は台湾パイナップルが店頭で少なくて高いのが気になります。品薄なのかな? 昨年は4月から6月が我が家では台湾パイナップル祭りだったのですが・・・。米が高くてパイナップルまで手が届かない・・・(>_<)

水曜日, 6月 25, 2025

Excel VBA 46 
Excelで選択したエリアを一行おきに選択

Excelで選択したエリアを一行おきに選択し、色を設定します。
デフォルト環境で設定するのが面倒くさいので作成して見ました。

Sub SelectAlternateRowsWithinSelection()
Dim rng As Range
Dim rowRange As Range
Dim newSelection As Range
Dim rowIndex As Integer
' 選択範囲を取得
On Error Resume Next
Set rng = Selection
On Error GoTo 0
' 範囲が選択されていない場合、エラーを表示
If rng Is Nothing Then
MsgBox "セル範囲を選択してください。", _
vbExclamation, "エラー"
Exit Sub
End If

' 選択範囲の1行おきの行を取得
For rowIndex = 1 To rng.Rows.Count Step 2
Set rowRange = rng.Rows(rowIndex)
If newSelection Is Nothing Then
Set newSelection = rowRange
Else
Set newSelection = _
Union(newSelection, rowRange)
End If
Next rowIndex

' 選択を適用
If Not newSelection Is Nothing Then
newSelection.Select
End If

MsgBox "選択範囲内の1行おきの行を選択しました!", _
vbInformation, "完了"
End Sub

エリアを選択し・・・

実行すると1行おきに選択した状態になるので・・・

カラーパレットで任意の色を設定。
シンプルな動きの方が応用が利きますね。