金曜日, 7月 04, 2025

TCDW8452
「アメリカに行くといい」と友人に言われたことが

甘党の私は昔・・・「アメリカに行くといい」と友人に言われたことがあります。理由は、アメリカのお菓子は「甘い」「クソ甘い」「フザケルナ甘い」の三択なのだとか? 私はまだ渡米経験はありませんが、それって不幸?それとも幸運?

木曜日, 7月 03, 2025

写ルンです風撮影道 03 
写ルンですのストロボは大光量

写ルンですのストロボは意外と大光量で驚きました。


ガイドナンバーの慶安は以下を参照してください。

Let's start JavaScript 70 ストロボのGNとISOの換算計算機 2025/06/10

連載のメインで利用しているPanasonic LUMIX DMC-GF3の内装ストロボのGNはSO100時に6.3なので、写ルンですのISO400に換算すると約GN10となり、写ルンですの半分でしかありません。

手持ちのデジタルカメラ(含:コンパクトカメラ)14台とも画角が35mm付近を確保できるものの、内蔵ストロボがISO 400時にGN20となるモノはありませんでした。GN24~GN8で、GN20付近で一番近いものはGN18(18.4)でした。だたし、ミラー付きの一眼レフのため「写ルンです」的に撮影する雰囲気ではないのでパスです。

手持ちのストロボ10台のうち、写ルンですのISO400に換算すると,
GN28〜76で、一番小さくて光量が少ないのはSUNPAK auto140で、GNはISO100時に14なので、写ルンですのISO400に換算するとGN28でオーバーになってしまいます。そもそもSUNPAK auto140以外はGF3より大きいので無意味ですね。

市販のストロボで、
ISO400時にGN20の製品には
Sony HVL-F20M GN10
Meike MK-RC7 GN10

ISO400時にGN18の製品には
Olympus FL-LM3 GN9

が、それぞれ1万円ほどリリースされていますが、
この企画(遊び)のために1万円の投資は意味が無いので断念しました。

TCDW8451
令和6年6月6日や令和5年5月5日にも色々あったのかな?

令和7年7月7日の特別クーポンや乗車券といった企画が多い事を知りました。なんかギャンブル?にあやかっているみたいですが、令和6年6月6日や令和5年5月5日にも色々あったのかな?

水曜日, 7月 02, 2025

JavaScriptでAI遊び 53 
Illustratorで矩形オブジェクトをランダム分割

選択した矩形オブジェクトをランダムに分割してみます。

#target illustrator
function diagonalRandomSplit() {
var doc = app.activeDocument;
if (doc.selection.length !== 1) {
alert("1つのオブジェクトを選択してください。");
return;
}

var obj = doc.selection[0];
var bounds = obj.geometricBounds;
var width = bounds[2] - bounds[0];
var height = bounds[1] - bounds[3];

var splitCount =
        parseInt(prompt("分割数を入力してください(例: 5)", "5"), 10);
if (isNaN(splitCount) || splitCount < 1) {
alert("有効な分割数を入力してください。");
return;
}

var newObjects = [obj];

for (var i = 0; i < splitCount; i++) {
var tempObjects = [];
for (var j = 0; j < newObjects.length; j++) {
var item = newObjects[j];
var itemBounds = item.geometricBounds;
var x1 = itemBounds[0], y1 = itemBounds[1];
var x2 = itemBounds[2], y2 = itemBounds[3];

if ((x2 - x1 > 10) && (y1 - y2 > 10)) {
// 斜めに分割
var randX = x1 + (Math.random() * 0.6 + 0.2) * (x2 - x1);
var randY = y2 + (Math.random() * 0.6 + 0.2) * (y1 - y2);
var newLine = doc.pathItems.add();
newLine.setEntirePath([[x1, y1], [randX, randY]]);
newLine.stroked = true;
newLine.strokeWidth = 1;

tempObjects.push(item);
} else {
tempObjects.push(item);
}
}
newObjects = tempObjects;
}
}

diagonalRandomSplit();

ベースにした矩形

デフォルトの分割数5を実行すると・・・

※ここでの分割数は指定回数ランダムに分割するという意味です。

分割数5の結果

分割数3を実行すると・・・

分割数3の結果

TCDW8450
やっぱり塩にぎりはシンプルで美味しいですからね

Baby Alien 097
派手なおにぎり坊や(^o^)
おにぎりと言えば、時々無性に塩握りが食べたくなり事があります。普段は塩を使わずに、昆布、オカカ、タラコを海苔で巻くだけなのですが、やっぱり塩にぎりはシンプルで美味しいですからね。

火曜日, 7月 01, 2025

デジタル一眼でFull、APS-C、M4/3の画角の関係

FULLサイズ用のレンズをAPS-CやM4/3(マイクロフォーサーズ)にアダプターなどで装着して撮影したときの画角を整理してみました。用意した環境は・・・

SONY α7 II ILCE-7M2(FULLサイズ)
SONY α NEX-6(APS-Cサイズ)
Panasonic LUMIX DMC-GX7MK2(M4/3サイズ)
Ai ZOOM NIKKOR 28-85mm F3.5-4.5

レンズはフィルム時代のズームレンズです。

APS-CとM4/3の焦点距離換算は・・・
 各社 APS-C 焦点距離換算
 Canonのみ1.6、それ以外のメーカーは1.5

M4/3 焦点距離換算
 2.0

※撮影は手持ちで行っています。



SONY α7 II ILCE-7M2(FULLサイズ)
Ai ZOOM NIKKOR 28-85mm F3.5-4.5
28mmで撮影 > 28mmの画角

SONY α NEX-6(APS-Cサイズ)
Ai ZOOM NIKKOR 28-85mm F3.5-4.5
28mmで撮影 > 1.5倍の42mm相当の画角

Panasonic LUMIX DMC-GX7MK2(M4/3サイズ)
Ai ZOOM NIKKOR 28-85mm F3.5-4.5
28mmで撮影 > 2倍の56mm相当の画角

SONY α7 II ILCE-7M2(FULLサイズ)
Ai ZOOM NIKKOR 28-85mm F3.5-4.5
85mmで撮影 > 85mmの画角

SONY α NEX-6(APS-Cサイズ)
Ai ZOOM NIKKOR 28-85mm F3.5-4.5
85mmで撮影 > 1.5倍の128mmの画角

Panasonic LUMIX DMC-GX7MK2(M4/3サイズ)
Ai ZOOM NIKKOR 28-85mm F3.5-4.5
85mmで撮影 > 2倍の170mmの画角

逆にAPS-C用のレンズをFullサイズカメラに装着すると・・・
※実際に28mmまたは85mmのAPS-C用レンズを持ち合わせていないので、以降はイメージとなります。

APS-C用28mmでの撮影結果

APS-C用28mmをFullサイズカメラに装着した状態

APS-C用レンズをFullサイズカメラに装着した場合、APS-Cカメラモードに変更することで撮影は可能ですが、画角は1.5倍になります。もちろん撮影データサイズもAPS-C相当になります。整理すると・・・

Fullサイズ用のレンズをAPS-CやM4/3で使用したときの焦点距離
※Fullサイズ用のレンズをフルサイズカメラでAPS-Cモードで撮影してもAPS-Cレンズと同じ画角になります。

APS-Cサイズ用のレンズをFullやM4/3で使用したときの焦点距離
なお、レンズ交換式のカメラにおいて、レンズのマウント面からイメージセンサー面までの距離のことを指すフランジバックの関係でSONY EマウントカメラへM4/3レンズを装着するアダプターはあります(※)。ただし、他の組み合わせは物理的に無理です。なお、論理的にはNikon Zマウント、FUJIFILM Xマウント、Canon Mマウント用のアダプターは設計可能だと思いますが、販売されているかは不明です。考えてみると、スピードブースター逆のような感じですね。

※ EマウントカメラへM4/3レンズを装着するアダプターはマニュアルレンズ用で、M4/3専用のマニュアルフォーカスができるレンズでもピント合わせは出来ません。

※スピードブースターは、フルサイズ用レンズをAPS-Cやマイクロフォーサーズ機で使用するための光学アダプターで、画角を広げ、F値を約1段明るくする効果があります。より明るく広い映像を得ることができます。

※SONY EマウントカメラへM4/3レンズを装着するアダプターは所有していますが、イレギュラー環境なので、今回の実験から外しました。

主なカメラマウントのフランジバック

※太字は現時点で所有しているカメラのマウント。
これ以上増えない様に注意しています(^o^)

TCDW8449
太陽を避けるために日傘をすると荷物を持てなくなる

ギラギラ太陽を避けるために日傘をすると荷物を持てなくなる・・・。バッグも限界がありますからね〜。さりとて、徒歩圏内に車をつかうのも・・・。色々と面倒ですね。

月曜日, 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>

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

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

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

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

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