金曜日, 10月 31, 2025

Illustratorでグラデーションもブレンド可能

質問がありましたので・・・
Illustratorでグラデーションもブレンド可能です。

例えばベースAが2ステップ、ベースBが5ステップで作成されたグラデーション間でもブレンド可能です。

カラーリングに迷ったら極端なカラーリング間でデリケートなイメージを作成出来ます。オブジェクトはグループ化してください。

けっきゃがイマイチなら、ベースオブジェクトをダイレクト選択ツールで全選択し、[編集]>[カラーを編集]>[オブジェクトを再配色]することで微調整が可能です。

TCDW8571 
ということは20年使っていることになります

今は無きSANYOのエネループを愛用しているのですが、最後に購入したのが12年前。勿論その前から使っているので、多分一番古いのは発売年の2005年。ということは20年使っていることになります。長持ちです。

木曜日, 10月 30, 2025

JavaScriptでAI遊び 77 
Illustratorでアンカーポイントの折れたハンドル修正



パスのアンカーポイントのハンドルが異なる向きを向いている場合に、それらを一直線に揃えてみました。

// 選択されたパスの折れたハンドルを修正して滑らかにする
(function () {
if (app.documents.length === 0) {
alert("ドキュメントを開いてください");
return;
}
var sel = app.activeDocument.selection;
if (sel.length === 0) {
alert("パスオブジェクトを選択してください");
return;
}

for (var i = 0; i < sel.length; i++) {
if (sel[i].typename === "PathItem") {
fixHandles(sel[i]);
}
}

function fixHandles(path) {
var pts = path.pathPoints;
for (var j = 0; j < pts.length; j++) {
var p = pts[j];
// コーナーポイントはスキップ
if (p.pointType === PointType.CORNER) continue;

var anchor = p.anchor;
var left = p.leftDirection;
var right = p.rightDirection;

// 方向線の角度を揃える
var vecL = [left[0] - anchor[0], left[1] - anchor[1]];
var vecR = [right[0] - anchor[0], right[1] - anchor[1]];

var lenL = Math.sqrt(vecL[0] * vecL[0] + vecL[1] * vecL[1]);
var lenR = Math.sqrt(vecR[0] * vecR[0] + vecR[1] * vecR[1]);

// 左右の長さの平均を使って対称化
var len = (lenL + lenR) / 2;

// 左ハンドルの角度を基準にする(右は反対方向)
var angle = Math.atan2(vecL[1], vecL[0]);
if (lenL === 0 && lenR !== 0) {
// 左がゼロなら右を基準
angle = Math.atan2(vecR[1], vecR[0]) + Math.PI;
}

// 左ハンドル
p.leftDirection = [
anchor[0] + Math.cos(angle) * len,
anchor[1] + Math.sin(angle) * len
];

// 右ハンドル(反対方向)
p.rightDirection = [
anchor[0] - Math.cos(angle) * len,
anchor[1] - Math.sin(angle) * len
];

// スムーズポイントに変更
p.pointType = PointType.SMOOTH;
}
}

alert("ハンドルを修正しました");
})();

私はIllustratorもタブレットペン利用なので、ブラシで自由曲線を描くことが多いです。
生成したパスを単純化させると、ハンドルが折れて生成されることが多いので・・・
スクリプトを実行(※)すると・・・
※ハンドルがある点を滑らか化
 左右のハンドルを一直線に揃え、
 長さは左右の平均値にする
 コーナーポイントは変更しない
ハンドルは水平に変更されます。
元のパスの複製を予め作成して、ガイドに変更してから修正すれば・・・
折れてないハンドルのパスが出来ます。でも、最初からペンツールで修正した方が速かった感じですね。ちなみに、出来る時と出来ない時があり、状況整理中です(>_<)

TCDW8570 
取りあえずサイトの更新を本気モードにしないと

10/08にkaizu.comがダウンし、何が何だか解らない状態が続き、同じレジストラを利用している友人やサポートを買って出てくれた友人の協力で、それなりに行動していたのですが、何の説明もなく10/27に復活していました。サイトはほとんど放置状態だったのですが、兎に角メインメールが使えない3週間は本当に難儀しました。復活も完全なのか謎のまま。調べたら25年以上利用していたので、まさに「青天の霹靂」でした。取りあえずサイトの更新を本気モードにしないと・・・。

水曜日, 10月 29, 2025

Let's start JavaScript 85 
指定画像をヴェイパーウェーブ風画像変換



指定画像をヴェイパーウェーブ風画像に変換します。あくまでも「〜風」です(^o^)

<!-- index.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 {
background-color: #111;
color: #fff;
font-family: "Poppins", sans-serif;
text-align: center;
}
canvas {
margin-top: 20px;
max-width: 90%;
border: 2px solid #ff66cc;
box-shadow: 0 0 20px #ff00ff;
}
input {
margin-top: 20px;
}
</style>
</head>
<body>
<h2>ヴェイパーウェーブ風画像変換</h2>
<canvas id="canvas"></canvas><br>
<input type="file" accept="image/*" id="imageInput">
<!--
input type="file"で
[ファイルを選択]選択されていません 。Google Crome
[参照]ファイルが選択されていません 。firefox
など、ブラウザに寄り異なります。
-->
<script>
const fileInput = document.getElementById('imageInput');
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');

fileInput.addEventListener('change', (e) => {
const file = e.target.files[0];
if (!file) return;

const img = new Image();
img.onload = () => {
canvas.width = img.width;
canvas.height = img.height;
ctx.drawImage(img, 0, 0);

// ピクセルデータを取得
const imageData = ctx.getImageData
(0, 0, canvas.width, canvas.height);
const data = imageData.data;

// コントラスト・彩度調整 + ピンク・シアン調色
for (let i = 0; i < data.length; i += 4) {
let r = data[i];
let g = data[i + 1];
let b = data[i + 2];

// コントラスト強調
const contrast = 1.4;
r = ((r - 128) * contrast + 128);
g = ((g - 128) * contrast + 128);
b = ((b - 128) * contrast + 128);

// 彩度アップ(簡易)
const avg = (r + g + b) / 3;
r = r + (r - avg) * 0.5;
g = g + (g - avg) * 0.5;
b = b + (b - avg) * 0.5;

// ヴェイパーウェーブ調の色合い
r += 20;
g += 0;
b += 40;

// 範囲制限
data[i] = Math.min(255, Math.max(0, r));
data[i + 1] = Math.min(255, Math.max(0, g));
data[i + 2] = Math.min(255, Math.max(0, b));
}

ctx.putImageData(imageData, 0, 0);

// グラデーションオーバーレイ
const gradient = ctx.createLinearGradient
(0, 0, canvas.width, canvas.height);
gradient.addColorStop(0, 'rgba(255,0,255,0.2)');
gradient.addColorStop(1, 'rgba(0,255,255,0.2)');
ctx.fillStyle = gradient;
ctx.fillRect(0, 0, canvas.width, canvas.height);

// ノイズ追加
const noiseDensity = 0.03;
const noise = ctx.getImageData
(0, 0, canvas.width, canvas.height);
const nData = noise.data;
for (let i = 0; i < nData.length; i += 4) {
if (Math.random() < noiseDensity) {
const v = (Math.random() - 0.5) * 60;
nData[i] += v;
nData[i + 1] += v;
nData[i + 2] += v;
}
}
ctx.putImageData(noise, 0, 0);
};
img.src = URL.createObjectURL(file);
});
</script>
</body>
</html>
<!-- index.html -->

実行したら画像を指定するだけです。



元画像はIllustratorで作成し、Photoshopに配置(※)してjogで書き出し。

※Illustratorにはチャンネルという概念が無いので

結果はこんな感じです。やっぱり画像に大きく影響します。色々試行錯誤すると感覚が掴めます。

TCDW8569 
真逆と理解すれば素敵な情報源ですね

Baby Alien 160
バレリーナを目指す(^o^)
子供の頃、父に「TVばかり見ているとバカになるぞ」と言われたことを思い出しました。もう長いことTVは見ていないのですが、要はTVの言うことは真逆と理解すれば素敵な情報源ですね(^o^)

火曜日, 10月 28, 2025

modoローポリモデリング 65 
出っ張りはベベルではなくブリッジもOK

出っ張りはベベルではなくブリッジでも作れます。あんがいコレの方が作りやすいかも。

任意の頂点を選択し・・・

ベベルで面を作成し手から・・・

control X(command X)で切り取ってからcontrol V(command V)で同じ位置にペースト後に移動します。

続けてエッジを選択し、[複製]>[ブリッジ]を実行。上図のようになってしまったら・・・

選択したエッジを[ポリゴン]>[生成]を実行すれば出っ張りが出来上がります。

ここで、[D]キーでポリゴン数を増やし・・・

対象設定としてから、目の位置あたりのポリゴンに対してベベルを2重に設定してから・・・

押し込んで目とします。続けて口のあたりのエッジを選択して・・・

ベベルを2重に設定してから押し込んで口とします。

細部を調整して顔モドキの完成です。

modo 17.1v1 

TCDW8568 
充電器が見つからずに右往左往で1時間

カメラの充電器が見つからずに右往左往で1時間。やっと見つけた充電器にメーカー純正のコネクターが合わない。色々調べたら、充電器用はUSB Type-C、本体充電用はMicro USB Type-B・・・なんで違うの?

月曜日, 10月 27, 2025

PhotoshopでカラーリングをVAPORWAVE風に(2)

PhotoshopでカラーリングをVAPORWAVE(ヴェイパーウェーブ)風にチャレンジの続編です。

以下も参考にしてください。
今回はIllustratorで作成した青みの強いデータをPhotoshopに配置(※)して処理してみました。

※Illustratorにはチャンネルという概念が無いので

今回もブルーチャンネルをcontrol(command)キーを併用してクリックしてブルーチャンネルの明るい部分を選択として取得します。

そのままレイヤーに移動して[マゼンタ〜イエロー〜マゼンタ]のグラデーションを設定します。ただし、今回はブルーチャンネルのコントラストが低いので、[イメージ]>[自動コントラスト]を実行してコントラストを上げています。

グラデーションは必要にい応じて位置や色を調整します。

完成イメージはこんな感じです。やはりイラストの方がいい感じですね。

TCDW8567 
そんな気まぐれも大切だと思っています

最近鉛筆を使う頻度が増えました。考え事やアイデア出しの時は鉛筆がイイですね。まっ、筆記具はその時々の気分で色々変えてきたのですが、そんな気まぐれも大切だと思っています。

日曜日, 10月 26, 2025

Illustratorでの作図基本 29 
スキャンデータのトレースと解像度

IllustratorデータをプリントアウトしてからPDFとしてスキャンし、Illustratorに配置してトレースした場合と、Illustratorの元データをスキャンした場合を比較してみました。

左がIllustratorの元データ。右がプリントアウト(※)してからPDFとしてスキャンしたデータ。

※インクジェットプリンタでを利用しました。カラー設定は適当です。

それぞれを個別にラスタライズし・・・

トレースしてみました。

元データで解像度の影響が出やすい部分のアップ。

解像度72ppiをトレースした結果。

解像度150ppiをトレースした結果。

解像度300ppiをトレースした結果。

解像度600ppiをトレースした結果。

こうして比較してみると最低150ppi は必要ですね。

TCDW8566 
諸般の事情で引きこもり更新中

寒い方が暑いより好きでも極端な寒暖差は勘弁して欲しいですね。で土日は更新しなくて良いのに、諸般の事情で引きこもり更新中(>_<)。

土曜日, 10月 25, 2025

PhotoshopでカラーリングをVAPORWAVE風に

PhotoshopでカラーリングをVAPORWAVE(ヴェイパーウェーブ)風にチャレンジです。

以下も参考にしてください。
元画像です。

ブルーチャンネルをcontrol(command)キーを併用してクリックしてブルーチャンネルの明るい部分を選択として取得します。

そのままレイヤーに移動してマゼンタから白のグラデーションを設定します。

作成したグラデーションの描画モードを乗算にすれば・・・

ソレっぽい雰囲気がでます。ただし、画像の状況に大きく左右される点に注意です。写真を加工するよりもイラストの方が楽かも・・・。