get-contrast-text-color

背景色の選択は手動(#808080,#808080FFなど)とcolorPicker(Enter HEXA Color Code部)で行います。
スライダーは背景色の透明度(Alpha)を調整します。
colorPickerで選択した場合はAlpha=255(1.000)となります。
テキスト(Hello, World!)の色はカラーピッカーBで変えることができます。
背景色とテキストの色を調整してテキストの認識度を確認してみよう


colorPicker-hexa-rgba-cmyka

色の選択は手動(#808080,#808080FFなど)とcolorPickerで行います。
スライダーは色の透明度(Alpha)を調整します。
colorPickerで選択した場合はAlpha=255(1.000)となります。


svgnames-colors

svgnames-colors

pccs-tone-colors

・PCCSトーン

色相/彩度 /明度の調整

色相(Hue)、彩度(Saturation/chroma)、明度(Brightness/Value)の調整。

・調整に使用した値は.cvsで保存できる。
例:test.csvで保存するときは、ファイル名はtestとし、拡張子は省略して下さい。 ・ボックスの値を変える:小さい5つのカラーボックはクリックで色の選択ができます。
・スラーダーで値を変える:

Munsell Color Wheel

Virtual Munsell Color Wheel
https://www.andrewwerth.com/color/munsell1.html
https://www.andrewwerth.com/color/munsell2.html


png-base64-webdisp


html-code-escape

1行の'''から10行までの「HTMLコード」をエスケープしてファイルに書き出す。

'escaped_output.txt'の中身は以下となります。 <!DOCTYPE html> <html> <head> <title>HTMLの'<'と'>'をエスケープ</title> </head> <body> <h1>ともに</h1> <p>能登半島</p> </body> </html>

png-base64-html



.txtファイルのBOMを削除する


.pngをbase64形式でBOMなしで出力する。


.png(複数対応)をbase64形式でBOMなしで出力する。

png2base64

注意:
15行:with open('output_base64.txt, 'wb')を修正してください(修正済20240324)
with open('sample2_base64.txt', 'wb')
学習用.png写真(width="100px",heigt="84"): ジャーマンアイリスの花
'image.png'の画像データをbase64形式で'output_base64.txt'に出力する(python)
ディレクトリ'flowers'の画像データ(複数可能)をbase64形式でディレクトリ'png-out1'に出力する(python)
例えば、[image.pngはimage.txt]となります。
課題:
出力ファイルに"BOM"が「含まれる」か「含まれてない」かを知ることが大切。 次の記事に、このことに関連した記事を予定しています。

画像(jpgなど)のサイズを一括変更(2)

画像(jpg)のサイズを一括変更するスクリプトです。
上のスクリプトはExif情報が消去され、下のスクリプトはExif情報を保持します。
#はコメントアウトを示す。



参照
https://ctakaha77.blogspot.com/2024/03/resize-pillow.html

CSSではみ出したテキストを省略するテストです。

縦長の動画(mp4)の上半分残す(下半分をカット[削除])方法

ディレクトリに保存した複数のmp4ファイルを一括クロップするスクリプト
(縦長の動画(mp4)の上半分を残す)

>python mp4-crop-sample.txt

mp4ファイルを"F:/video/tmp"に保存した場合
F:/video/tmp>python mp4-crop-sample.txt

一つの動画をクロップする(コマンドプロンプトで)
・動画の上半分を残して、下半分をカットする方法
>ffmpeg -i input_video.mp4 -filter:v "crop=in_w:in_h*0.5:0:0" output_video.mp4
・動画の下半分を残して、上半分をカットする方法
>ffmpeg -i input_video.mp4 -filter:v "crop=in_w:in_h*0.5:0:in_h*0.5" output_video.mp4
■FFmpegのインストール

exiftoolの活用

■exiftoolを使った、画像メタデータ情報の削除(利用には、情報を確認して自己責任でお願いします)

ExifToolは、Windows、macOS、Linuxなどのさまざまなプラットフォームで利用できる。

以下は、ExifToolを使用して写真や動画のプロパティを一括削除する手順です。

・ExifToolをインストールとコマンドラインでexiftoolの実行
インストール手順については、ExifToolの公式ウェブサイトを参照。
https://exiftool.org/index.html
Windows Executable: exiftool-12.78.zip (8.4 MB)をDL
・exiftool.exeへのpathを設定(exiftool.exeのあるディレクトリを設定)

・コマンドラインを開き、写真や動画の保存されているディレクトリ(F:\baseball2403\tmp-out)に移動。

F:\baseball2403\tmp-outに5個の画像があるとすると、
F:\baseball2403\tmp-out>exiftool -all= *.jpg

    5 image files updated

これで、写真や動画のメタデータが削除されます。

・一つのsample.jpgのメタ情報を削除
exiftool -all= sample.jpg

・現在のディレクトリにあるすべての.jpgや.mp4ファイルのメタ情報を一括削除する。
exiftool -all= *.jpg *.mp4

・詳しくは以下を参照
exiftool Application Documentation
https://exiftool.org/exiftool_pod.html

■コマンドプロンプトで、外付けHDD(f:)の画像保存ディレクトリに移動する場合のコマンドプロンプト

C:\Windows\system32>cd /d f:\baseball2403\tmp-out

画像(jpgなど)のサイズを一括変更(1)



画像(jpgなど)のサイズを一括変更する場合に使用するスクリプトです(Exif情報が削除されます)

■スクリプト中の(\\と/)について

・バックスラッシュをエスケープ文字として扱うために、\\とする必要があります

input_directory = "baseball2403\\tmp-in"
output_directory = "baseball2403\\tmp-out"

・スラッシュを使う。
input_directory = "baseball2403/tmp-in"
output_directory = "baseball2403/tmp-out"

どちらを使用してもよい。

■pythonとpillowの入手はサイトを参照しました。
■ChatGPT3.5と何回もやりとりして完成したものです。

KeTCindy installation guide revised version

 Updateできないときの対応

[Update]をクリックすると黒い画面(コマンドプロンプト)が点滅し終了しない場合は、
Updateできていないので手動で更新する。

更新されない箇所は以下の2つのファイルの中身である。
[C:\kettex\texlive\texmf-dist\scripts\ketcindy]と
[C:\kettex\texlive\texmf-dist\tex\latex\ketcindy]

  


■手動更新

手順1
1) [C:\kettex\texlive\texmf-dist\scripts\ketcindy]の中身を
2) [C:\ketcindy4.4.61\scripts]の中身と同じにする。
具体的には1)の中身をすべて削除して、2)の中身をコピーして、1)にペーストする。

手順2
1) [C:\kettex\texlive\texmf-dist\tex\latex\ketcindy]の中身を
2) [C:\ketcindy4.4.61\style]の中身と同じにする。
具体的には1)の中身をすべて削除して、2)の中身をコピーして、1)にペーストする。

手順3
コマンドプロンプトを管理者として立ち上げ、mktexlsrを実行する。
mktexlsrは
[C:/kettex/texlive/bin/win32/mktexlsr]にある。
コマンドプロンプトでの操作は以下のようとなります。

Microsoft Windows [Version 10.0.19045.3930]
(c) Microsoft Corporation. All rights reserved.
C:\Windows\system32>cd \
C:\>C:/kettex/texlive/bin/win32/mktexlsr
mktexlsr: Updating C:/kettex/texlive/texmf-local/ls-R...
mktexlsr: Updated C:/kettex/texlive/texmf-local/ls-R.
mktexlsr: Updating C:/kettex/texlive/texmf-config/ls-R...
mktexlsr: Updated C:/kettex/texlive/texmf-config/ls-R.
mktexlsr: Updating C:/kettex/texlive/texmf-var/ls-R...
mktexlsr: Updated C:/kettex/texlive/texmf-var/ls-R.
mktexlsr: Updating C:/kettex/texlive/texmf-dist/ls-R...
mktexlsr: Updated C:/kettex/texlive/texmf-dist/ls-R.
mktexlsr: Done.
C:\>

直ぐに終了しました。

■WORKボタンのクリック

作業ディレクトリー[ketcindy2024Jan16]がユーザディレクトリー(ユーザーホーム)に作成される。

C:\Users\taka\ketcindy2024Jan16


■[ketcindyjs]の生成
[C:\Users\taka\ketcindy2024Jan16\templates]にある[ketcindyjs]の生成

最初にKetjsoffボタンを押したタイミングで生成される。
[ketcindyjs]がないと×××offL.htmlが表示されない。

上記の作業ディレクトリー[ketcindy2024Jan16]を例えばD:\に移動してしまうと、Ketjsoffボタンを押しても[ketcindyjs]は生成されないようです。

そこで、C:\Users\takaの作業ティレクーで[ketcindyjs]を生成してからD:\等に移動することになるようです。
作業ティレクーは任意の場所に移動できるが、[ketcindyjs]が必要な場合は[ketcindyjs]の生成のタイミングに注意が必要である。


KeTCindy installation guide

KeTCindyの更新手順(Windows10)
KeTCindyのインストール」による
[https://s-takato.github.io/ketcindyorg/installketcindy.html]

■ketcindy4.4.61をダウンロードして、C:直下に置く











■ketcindysettings.cdyを実行して各種設定
[C:\ketcindy4.4.61\doc\ketcindysettings.cdy]にある




Kettex→MkinitUpdate→Workの順に実行
[Update]をクリックすると黒い画面(コマンドプロンプト)が点滅し終了しない。
Ctrl+Cで強制終了する。

コマンド画面には、以下のメッセージが連続して表示される。
^Cwhoami: extra operand `/groups' 
Try `whoami --help' for more inform ation.
find: `Mandatory': No such file or directory
バッチ ジョブを終了しますか (Y/N)?
Y 




動画の様子


■まとめ
設定後、KeTCindyは問題なく実行できている。



■動画作成に利用したソフトと参考サイト
  • 【AviUtl】ぼかし系エフェクト(ぼかし・境界ぼかし・モザイク)の使い方
    https://aviutl.info/bokasi-efekuto/
  • Aviutlを使う方法をご紹介
    https://filmora.wondershare.jp/aviutl/how-to-use-free-software-aviutl.html

AviUtlの編集


Cycloidの仲間たち


下図をクリックしてください(別タブに表示)。
図のA点を上下して曲線の変化を見てみましょう。



  • 円は半径1
  • A点は自由点で、ドラッグして上下に動かすことができる
  • 範囲はSlider("A",[0,-4],[0,4]);で設定している
Ketinit();
Setketcindyjs(["Label=[A]","Color=white"]);

Putpoint("A",[0,0],[0,A.y]);
Putpoint("C",[0,1]);
Slider("A",[0,-4],[0,4]);
Setpt(2);
Circledata("0",[C,C+[1,0]]);
Pointdata("0",[A],["Color=red"]);

nn=4*36;
forall(1..nn,
    t=4*pi/nn*#;
    Rotatedata("p","pt0",-t,[C,"nodisp"]);
    Translatedata("p"+text(#),"rtp",[t,0],["Color=red"]);
    Rotatedata("c","cr0",-t,[C,"nodisp"]);
    Translatedata(text(#),"rtc",[t,0],["dr,0.3"]);
);

Windispg();