写真の物理学 ㊵ 太陽光と大気の物理学

Share
📐
写真の物理学シリーズ ㊵
このシリーズでは、写真にまつわる現象を物理学の言葉で記述する。「なんとなくそうなる」を「なぜそうなるか」に変換することが目的である。

写真のもっとも基本的な光源は太陽である。その光が大気を通過する過程で何が起こるかを物理学で記述する。空が青い理由、夕焼けが赤い理由、雲が白い理由。これらはすべて、太陽光と大気中の粒子との相互作用として統一的に理解できる。

太陽のスペクトル

太陽の表面(光球)は有効温度約5778 Kの熱放射体として振る舞う。プランクの放射法則により、温度 $T$ の黒体から放射される分光放射輝度 $B(\lambda, T)$ は

$$ B(\lambda, T) = \frac{2hc^2}{\lambda^5} \cdot \frac{1}{e^{hc/(\lambda k_B T)} - 1} $$

で与えられる。ここで $h$ はプランク定数、 $c$ は光速、 $k_B$ はボルツマン定数、 $\lambda$ は波長である。色温度と黒体放射でこの式の導出と写真への応用を詳述した。

ウィーンの変位則により、放射のピーク波長は

$$ \lambda_{\max} = \frac{b}{T} $$

で求まる。 $b \approx 2.898 \times 10^{-3}$ m·K がウィーンの変位定数だ。 $T = 5778$ K を代入すると $\lambda_{\max} \approx 501$ nm となり、可視光の緑色領域に相当する。太陽の放射エネルギーが可視光帯域に集中しているのは偶然ではなく、人間の視覚系がこの恒星のスペクトルに適応した結果と考えるのが自然だ。

実際の太陽スペクトルは理想的な黒体曲線からずれる。光球から放射された連続スペクトルが、温度の低い太陽大気(彩層)を通過する際に、特定の波長の光が原子によって吸収される。この吸収線がフラウンホーファー線だ。1814年にヨーゼフ・フォン・フラウンホーファーが体系的に観測・分類し、現在までに数千本が同定されている。

代表的なフラウンホーファー線として、カルシウムイオンのK線(393.4 nm)とH線(396.8 nm)、水素のH$\alpha$線(656.3 nm)とH$\beta$線(486.1 nm)、ナトリウムのD線(589.0 nm / 589.6 nmの二重線)、ヘリウムのD$_3$線(587.6 nm)がある。ヘリウムは1868年にこの太陽スペクトルの吸収線から存在が推定され、地球上で発見されるより約27年先に太陽大気中に見出された元素だ。

写真にとって重要なのは、フラウンホーファー線が太陽光の分光分布に微細な凹凸を与えている点だ。日常の撮影でこの影響が目に見えることはないが、分光測色やカラーサイエンスの精密な議論では、太陽光が完全な黒体放射ではないという事実が前提となる。色とは何かで体系化するCIE標準光源D65の分光分布が滑らかな曲線ではなく細かな凹凸を含むのも、実測された昼光のスペクトル(フラウンホーファー線を含む)を数学的に再構成したものだからだ。

エアマスの概念

太陽光が地表に届くまでに通過する大気の量は、太陽の位置によって変化する。この大気通過量を定量化する指標がエアマス(Air Mass, AM)である。

太陽が天頂(真上)にあるとき、光は大気を最短経路で通過する。このときのエアマスを AM = 1 と定義する。太陽の天頂角(天頂からの角度)を $\theta_z$ とすると、平行平板大気モデルでは

$$ \text{AM} = \frac{1}{\cos\theta_z} $$

と近似できる。太陽高度角 $h$(水平線からの仰角)を用いれば $\theta_z = 90° - h$ であるから $\text{AM} = 1/\sin h$ とも書ける。

$\theta_z = 0°$(天頂)で AM = 1、 $\theta_z = 60°$ で AM = 2、 $\theta_z = 48.2°$ で AM = 1.5 となる。AM 1.5 は太陽電池の標準試験条件として広く用いられる基準であり、中緯度地域の年間平均的な太陽位置に相当する。

この近似は $\theta_z < 75°$ 程度まではよく機能するが、太陽が地平線に近づくと地球の曲率が無視できなくなり、 $\theta_z = 90°$ で無限大に発散する非物理的な結果を与える。実際の大気は球殻状であり、地平線付近のエアマスは約38程度で飽和する。Kasten & Young(1989)の経験式

$$ \text{AM} = \frac{1}{\cos\theta_z + 0.50572 \cdot (96.07995 - \theta_z)^{-1.6364}} $$

は $\theta_z = 90°$ 付近でも妥当な値を与える。

エアマスが大きいほど、光はより多くの大気を通過し、散乱と吸収の影響を強く受ける。朝夕に太陽が赤く見え、色温度が低下する現象は、このエアマスの増大と後述するレイリー散乱の波長依存性によって定量的に説明される。

レイリー散乱

空が青い理由を物理学的に記述するのがレイリー散乱だ。

光が大気中の窒素分子(N$_2$)や酸素分子(O$_2$)のように波長よりはるかに小さい粒子(直径 $d \ll \lambda$)に遭遇すると、入射電場が分子内の電子分布を歪め、振動する電気双極子を誘起する。この振動双極子が二次的な電磁波を全方向に放射する。これがレイリー散乱の基本的な機構であり、散乱の一般論は光と物質の相互作用で扱った。

散乱の微分断面積は

$$ \frac{d\sigma}{d\Omega} = \frac{\pi^2 (n^2 - 1)^2}{2 N^2 \lambda^4} (1 + \cos^2\Theta) $$

で与えられる。ここで $n$ は大気の屈折率、 $N$ は単位体積あたりの分子数、 $\Theta$ は散乱角だ。重要なのは $\lambda^4$ が分母にある点である。散乱強度は波長の4乗に反比例する。

この波長依存性の帰結を具体的に計算してみる。青色光( $\lambda \approx 450$ nm)と赤色光( $\lambda \approx 650$ nm)の散乱強度の比は

$$ \frac{I_{450}}{I_{650}} = \left(\frac{650}{450}\right)^4 \approx 4.4 $$

である。青色光は赤色光の約4.4倍強く散乱される。この選択的な散乱が空を青く染める。

なぜ空は紫ではないのか。波長依存性だけを考えれば、もっと短波長の紫色光( $\lambda \approx 400$ nm)のほうがさらに強く散乱されるはずだ。実際にそうなのだが、二つの理由で空は紫ではなく青に見える。第一に、太陽の放射スペクトルは紫色領域では青色領域より強度が低い。黒体放射のピークは約500 nmにあり、400 nm付近ではすでにスペクトル強度が減少している。第二に、人間の眼の光学で詳述する錐体細胞の分光感度は紫色領域で急激に低下する。S錐体(短波長錐体)のピーク感度は約420 nmにあるが、400 nm以下では感度が急落する。散乱された紫色光のうち、実際に視覚系が検出できる割合は限られている。この二つの要因が組み合わさり、知覚される空の色は紫ではなく青になる。

散乱角 $\Theta$ に関する $(1 + \cos^2\Theta)$ の因子は、前方散乱( $\Theta = 0°$)と後方散乱( $\Theta = 180°$)で最大、側方散乱( $\Theta = 90°$)で最小となることを示す。ただしレイリー散乱では前方と後方の強度がほぼ等しく、ミー散乱のような強い前方散乱の非対称性はない。

ミー散乱

粒子の直径が光の波長と同程度かそれ以上になると、レイリー散乱の近似は破綻し、ミー散乱(Mie scattering)の理論が必要になる。

グスタフ・ミーは1908年に、任意の大きさの球形粒子による電磁波の散乱を厳密に解いた。この解は球ベッセル関数の無限級数で表され、レイリー散乱は粒子径が波長よりはるかに小さい極限として含まれる。反対に、粒子径が波長よりはるかに大きい極限では、散乱は幾何光学(反射と屈折)に一致する。

写真にとって重要な帰結は、粒子径 $d$ が波長 $\lambda$ よりはるかに大きい場合( $d \gg \lambda$)、散乱効率の波長依存性がほぼ消失するという点だ。雲を構成する水滴の典型的な直径は10から20 $\mu$m程度で、可視光の波長(0.4から0.7 $\mu$m)の数十倍に達する。このため可視光のすべての波長がほぼ等しく散乱され、散乱光は白色になる。雲が白く見える理由はこれである。

雨雲が暗灰色に見えるのは、水滴の密度が高く光学的厚さが増すためだ。入射した太陽光の大部分が多重散乱と吸収によって減衰し、雲の下面に透過する光量が減少する。色が変わるのではなく、明度が下がる。

太陽のすぐ近くの空が白っぽく見えるのも、大気中のエアロゾル(花粉、塵、微小水滴など)によるミー散乱の寄与が大きいためだ。レイリー散乱は太陽から離れた方向で飽和度の高い青を生むが、太陽に近い方向ではミー散乱の波長非依存的な白色光が加わり、青が薄まる。

大気による吸収

散乱が光の方向を変えるのに対し、吸収は光のエネルギーを分子の内部エネルギーに変換して光を消失させる。大気中で重要な吸収体は水蒸気(H$_2$O)、オゾン(O$_3$)、二酸化炭素(CO$_2$)の三つだ。

水蒸気 は近赤外域に複数の強い吸収帯を持つ。主要なものは720 nm、820 nm、940 nm、1130 nm、1380 nm、1870 nm付近であり、可視光の赤色端からすでに影響が始まる。風景写真で遠景が霞む原因の一部は、赤色から近赤外域の吸収による色再現の変化にある。水蒸気の量は天候や地域によって大きく変動するため、この吸収の影響も状況依存的だ。

オゾン は成層圏(高度約15から35 km)に集中し、二つの吸収帯を持つ。ハートレー帯(200から310 nm)は紫外線を極めて強く吸収し、地上に到達するUV-Cをほぼ完全に遮断する。シャッピュイ帯(Chappuis band, 400から650 nm)は可視光域の弱い吸収帯であり、575 nmと603 nmに二つの吸収極大がある。この吸収は通常の撮影条件では目立たないが、太陽高度が低くエアマスが大きい条件では、夕暮れ後の空の深い青色にオゾンのシャッピュイ帯吸収が寄与していることが放射伝達モデルの計算で示されている。

二酸化炭素 は2.7 μm、4.3 μm、15 μm付近に吸収帯を持つ。これらはいずれも赤外域にあり、可視光の写真撮影には直接影響しない。ただし赤外写真の文脈では、CO$_2$の吸収帯が撮影可能な赤外波長域を制約する因子の一つになる。見えない光が写す もうひとつの風景で論じたように、デジタルカメラの赤外撮影は主に700から1000 nm付近の近赤外域で行われるが、この帯域では水蒸気の吸収帯との重なりが実用上の課題となる。

大気全体の透過特性を見ると、可視光域(400から700 nm)は吸収が最も少ない「大気の窓」に相当する。人間の視覚が可視光に特化しているのは、太陽放射のピークがこの帯域にあることと、大気がこの帯域をほぼ透過させることの両方に適応した結果だ。

太陽高度と色温度の変化

太陽高度の変化に伴うエアマスの増減は、地上に到達する光の分光分布を変え、結果として色温度を変化させる。

色温度とは、光源の分光分布を最もよく近似する黒体の温度だ。太陽光の色温度は一日を通じて大きく変動する。

日の出・日の入り直後では、太陽高度が極めて低くエアマスは30を超える。このとき短波長光はレイリー散乱と大気吸収によって大幅に減衰し、直射光の色温度は約2000 Kまで低下する。光は深い赤橙色を帯びる。

太陽高度が上がるにつれ、エアマスは減少し、短波長光の減衰も緩和される。午前の早い段階(太陽高度15から20°程度)で色温度は約3000から3500 Kとなり、暖かい金色の光となる。写真でゴールデンアワーと呼ばれる時間帯がこれに相当し、その定量的な記述はマジックアワーとブルーアワーの物理学に譲る。人はなぜ夕方の光で立ち止まるのかで論じたように、この色温度帯の光は人間の知覚に特有の美的反応を引き起こす。

正午に太陽が最も高くなると、エアマスは最小(低緯度では1に近い、中緯度では1.5程度)となり、色温度は約5500 Kに達する。これが「昼光」の基準色温度であり、写真用ストロボの設計色温度もこの値に近づけられている。ストロボ撮影で色がずれる理由と対策で述べたように、ストロボのキセノン放電光の設計色温度が5500から6000 K付近に設定されるのは、この昼光条件との整合をとるためだ。

曇天や日陰では、直射日光が遮られ拡散光(空からの散乱光)が支配的になる。散乱光は短波長成分がリッチなため、色温度は6500 Kから7500 K以上に上昇し、青みを帯びた光となる。CIE標準光源D65の相関色温度が約6504 Kに設定されているのは、この曇天から日陰にかけての昼光条件を代表するためだ。

この色温度変化の全体像は、エアマスの変化とレイリー散乱の $\lambda^{-4}$ 依存性から定性的に理解できる。短波長光の減衰係数をレイリー散乱の断面積と大気の光学的厚さから計算すれば、エアマスの関数として分光分布の変化を定量的に追跡でき、対応する相関色温度を導出できる。

地平線付近の太陽の赤さ

夕焼けの赤さは、レイリー散乱の波長選択性とエアマスの増大が組み合わさった結果だ。

大気の光学的厚さ $\tau(\lambda)$ がレイリー散乱によって $\tau(\lambda) \propto \lambda^{-4}$ に従うとき、エアマス $m$ の条件で地表に到達する直射光の強度は、光と物質の相互作用で導入したベール・ランベルトの法則により

$$ I(\lambda) = I_0(\lambda) \cdot e^{-m \cdot \tau(\lambda)} $$

で記述される。 $I_0(\lambda)$ は大気上端での太陽放射スペクトルだ。

正午( $m \approx 1$)では $\tau(\lambda)$ が小さいため、指数関数の減衰は穏やかであり、スペクトル全域がほぼ均等に透過する。しかし $m$ が大きくなると、 $\tau(\lambda)$ が大きい短波長側の減衰が急激に増大する。

具体的に見てみる。海面レベルでのレイリー散乱による光学的厚さは、波長450 nmで $\tau_{450} \approx 0.235$、波長650 nmで $\tau_{650} \approx 0.054$ 程度だ。 $m = 1$ のとき、透過率はそれぞれ $e^{-0.235} \approx 0.79$、 $e^{-0.054} \approx 0.95$ となり、青色光が約21%減衰する程度で大きな色変化は生じない。

しかし $m = 10$(太陽高度約6°)では、 $e^{-10 \times 0.235} \approx 0.095$、 $e^{-10 \times 0.054} \approx 0.58$ となる。青色光は90%以上が失われるのに対し、赤色光はまだ58%が残る。 $m = 30$(太陽が地平線のすぐ上)では、 $e^{-30 \times 0.235} \approx 8.5 \times 10^{-4}$、 $e^{-30 \times 0.054} \approx 0.20$ だ。青色光は事実上消滅し、赤色光だけが地表に届く。太陽が真っ赤に見えるのは、この選択的な減衰の当然の帰結だ。

逆に、散乱されて取り除かれた短波長光は消えるわけではない。それは太陽の方向から横方向にばらまかれ、空全体を照らしている。夕焼けで太陽と反対側の空が青紫色を帯びるのは、太陽からの光路で散乱された短波長光がそちらの方向に届いているためだ。

大気の偏光

レイリー散乱は散乱光に偏光を与える。この偏光パターンは写真における偏光フィルターの効果と直結する。

非偏光の入射光がレイリー散乱を受けると、散乱角 $\Theta = 90°$ の方向では散乱光は完全な直線偏光になる。散乱角がそれ以外の場合は部分偏光となり、偏光度 $P$ は

$$ P(\Theta) = \frac{1 - \cos^2\Theta}{1 + \cos^2\Theta} $$

で与えられる。 $\Theta = 90°$ で $P = 1$(完全偏光)、 $\Theta = 0°$ または $180°$ で $P = 0$(非偏光)となる。

これが写真で意味するのは、太陽から90°の方向の空が最も強く偏光しているということだ。偏光フィルター(C-PLフィルター)をこの方向に向けて透過軸を調整すれば、散乱光を選択的に除去できる。結果として空の青が深くなり、コントラストが向上する。マリュスの法則 $I = I_0\cos^2\theta$ に従い、偏光フィルターの回転角によって除去量を連続的に制御できる。偏光の基礎と偏光フィルターの物理的機構については、電磁波としての光で偏光板の透過特性とマリュスの法則を導出した。

太陽に向かう方向( $\Theta \approx 0°$)や太陽の反対方向( $\Theta \approx 180°$)では偏光度が低いため、偏光フィルターの効果は限定的になる。広角レンズで空を広く写すと、画面内で偏光度の勾配が可視化され、空の青さが不均一になるのはこのためだ。

実際の大気では多重散乱やエアロゾルの影響があり、理論的な偏光度100%は達成されない。晴天時の最大偏光度は通常60から80%程度にとどまる。

紫外線と赤外線

可視光の外側で写真に影響を及ぼす電磁波がある。

紫外線(UV) は波長に応じてUV-A(315から400 nm)、UV-B(280から315 nm)、UV-C(100から280 nm)に分類される。UV-Cはオゾン層のハートレー帯吸収により地上にほぼ到達しない。UV-Bは大部分が吸収されるが一部が到達し、日焼けや皮膚がんの原因となる。UV-Aは大気による吸収が比較的少なく、地上に到達する。

写真においてUV-Aは二つの形で影響する。第一に、レンズコーティングやガラスの紫外線透過による像のフレア。光学ガラスは約350 nm以下のUVをほぼ吸収するが、350から400 nm帯のUV-Aは透過する。高地や海辺など紫外線が強い環境では、UVカットフィルターによる長波長紫外線の遮断がフレア低減に有効な場合がある。第二に、紫外線蛍光写真への応用。一部の物質は紫外線を吸収して可視光の蛍光を発する。法科学や美術品調査で利用される技法だ。

赤外線(IR) は近赤外(780 nmから約2.5 μm)、中赤外(2.5から25 μm)、遠赤外(25 μm以上)に分類される。光電効果とフォトダイオードで論じたように、デジタルカメラのシリコンセンサーはバンドギャップ(約1.12 eV)の制約から約1100 nmまでの近赤外線に感度を持つが、通常はIRカットフィルターで遮断される。見えない光が写す もうひとつの風景で詳述したように、このフィルターを除去することで赤外写真が可能になる。

赤外線は大気中の水蒸気やCO$_2$による吸収帯があるものの、近赤外域には「大気の窓」が存在し、風景撮影に十分な透過率が得られる。赤外写真で植生が白く輝く現象は、クロロフィルが近赤外線を約700 nm付近で急激に反射率を高める「レッドエッジ」と呼ばれる分光特性に由来する。

標高と大気の影響

標高が上がると頭上の大気の量が減少し、太陽光の分光分布と強度が変化する。

大気圧は高度とともに指数関数的に減少し、標高 $z$ での気圧 $P(z)$ はおおよそ

$$ P(z) = P_0 \cdot e^{-z/H} $$

で近似される。 $P_0$ は海面気圧、 $H \approx 8.5$ km がスケールハイトだ。標高3000 mでは気圧は海面の約70%、標高5000 mでは約55%になる。

大気の減少による帰結は複数ある。

第一に、レイリー散乱が減少する。散乱量は大気中の分子数に比例するため、高地では散乱による光の減衰が少なくなり、直射光の短波長成分がより多く保存される。これにより空の色はより深い紺色になり、コントラストが向上する。

第二に、紫外線の強度が増加する。大気による紫外線吸収は主に成層圏のオゾンと対流圏の散乱に依存するが、高度が上がるとこれらの遮蔽効果が弱まる。一般に標高が1000 m上がるごとに紫外線強度は約10から12%増加するとされる。星空を眺めるで触れた天体観測の聖地が高地に置かれるのも、大気の減少により透明度が増し、光害も少ないためだ。

第三に、水蒸気が減少する。水蒸気は対流圏の下層に集中しており、高地では絶対湿度が著しく低い。近赤外域の水蒸気吸収帯の影響が緩和され、赤外撮影の条件が改善される。

第四に、エアロゾルが減少する。大気中の微粒子は地表付近に集中しているため、高地ではミー散乱の寄与が小さくなり、空の透明度がさらに向上する。

エアライトと風景写真の色再現

遠景が白っぽく霞んで見える現象は、大気散乱によるエアライト(airlight)として物理的に記述できる。

カメラが遠方の被写体を撮影するとき、検出される光は二つの成分の和になる。

$$ I_{\text{obs}}(\lambda) = I_{\text{obj}}(\lambda) \cdot e^{-\beta(\lambda) \cdot d} + I_{\text{air}}(\lambda) \cdot (1 - e^{-\beta(\lambda) \cdot d}) $$

第一項は被写体からの光が距離 $d$ の大気を通過する間に減衰した成分だ。 $\beta(\lambda)$ は大気の消散係数(散乱係数と吸収係数の和)で、レイリー散乱の寄与により波長依存性を持つ。第二項がエアライトであり、視線方向の大気柱内で散乱された太陽光が加算される成分だ。 $I_{\text{air}}(\lambda)$ はエアライトの固有輝度で、散乱された太陽光の分光分布を反映する。

距離 $d$ が大きくなると第一項は指数的に減衰し、第二項が支配的になる。遠景が一様に白っぽくなるのは、被写体固有の色情報が失われ、エアライトの色(太陽光をレイリー散乱した結果の白から淡青)に収束するためだ。

この関係は風景写真の色再現に直接影響する。RAW現像の信号処理で扱うデヘイズ(霞除去)処理の数学的根拠も、このエアライトモデルに基づいている。 $I_{\text{obj}}$ を推定するには $\beta$、 $d$、 $I_{\text{air}}$ を何らかの方法で推定する必要があり、単一画像からの推定はいわゆるill-posed問題だ。He et al.(2009)のダークチャネルプライオール(Dark Channel Prior)は、霞のない自然画像では少なくとも一つの色チャンネルが局所的に非常に低い値を持つという経験則に基づいて、この推定問題に実用的な解を与えた。

大気の透明度が高いとき(高地、乾燥地、清澄な空気)には $\beta$ が小さくなり、より遠い距離まで被写体固有の色が保存される。逆に湿度やエアロゾル濃度が高い条件では $\beta$ が増大し、遠景のコントラストと彩度が急速に低下する。白い壁に近づいても露出が変わらない物理学的理由で議論した逆二乗則による光の減衰は点光源からの幾何学的な拡散に起因するが、エアライトによる減衰は大気という媒質の介在による物理的に異なる機構だ。

まとめ

太陽は有効温度約5778 Kの黒体に近いスペクトルを持ち、フラウンホーファー線による微細な吸収構造を伴う。この光が地球大気に入射すると、エアマス $\text{AM} = 1/\cos\theta_z$ に応じた量の大気を通過し、レイリー散乱( $\propto \lambda^{-4}$)とミー散乱、大気ガスによる吸収を受ける。

レイリー散乱の波長選択性が空を青くし、夕焼けを赤くし、散乱光に偏光を与える。ミー散乱の波長非依存性が雲を白くする。水蒸気、オゾン、二酸化炭素の吸収帯がスペクトルの特定領域を削り取る。

太陽高度の変化は色温度を約2000 K(日の出・日の入り)から約5500 K(正午)まで変動させ、曇天では6500 K以上に達する。標高の上昇は大気の減少を通じて紫外線の増加、散乱の減少、コントラストの向上をもたらす。遠景の霞はエアライトモデルで定量的に記述される。

これらはすべて、電磁波と大気中の分子・粒子との相互作用という一つの物理的枠組みの中にある。写真を撮るということは、この大気のフィルターを通過した光を記録するということだ。太陽光がセンサーに届くまでに何が起きているかを知ることは、光の色と質を理解する第一歩になる。本稿で構築した大気光学の枠組みは、マジックアワーとブルーアワーの物理学でオゾン層のシャッピュイ帯吸収を加えた薄明の色彩に、虹・ハロ・蜃気楼の光学で屈折と反射が生む大気光学現象に、水中・霧中・宇宙の光で大気以外の媒質における光の伝播に展開される。

Read more

Dependabotの対応が面倒なのでRenovateを導入する

Dependabotくんはある程度の依存関係の更新を通知してくれるが、山のようにprojectを抱えているとなんとも痒いところに手が届かない。 ということで、Renovateを使ってみる。 Build software better, togetherGitHub is where people build software. More than 150 million people use GitHub to discover, fork, and contribute to over 420 million projects.GitHub ここからGitHub Appを入れる。 あとは、指示に従ってポチポチするだけで、超かんたんだった。 感想 自動化最高。

By Sakashita Yasunobu

nodejsのバグを見つけたのでPRを投げてみた

概要 要するに、node --testで特定のバイナリを標準出力に書くと、テストランナーが固まったり、異常終了したりするバグです。 バグ自体は既知のものだったようで、修正がされていました。 test_runner: infinite loop in FileTest#drainRawBuffer when child stdout contains FF 0F followed by large size bytes · Issue #62693 · nodejs/nodeVersion v25.9.0 (also reproduced on v24.14.1 LTS, v22.21.0 LTS, v23.4.0) Platform Darwin 25.

By Sakashita Yasunobu
青空文庫のParser

青空文庫のParser

青空文庫のParserを作ってます。 GitHub - P4suta/aozora: Pure-functional Rust parser for 青空文庫記法 (Aozora Bunko notation): ルビ, 傍点, 縦中横, 外字, 返り点, indent containers, page breaks.Pure-functional Rust parser for 青空文庫記法 (Aozora Bunko notation): ルビ, 傍点, 縦中横, 外字, 返り点, indent containers, page breaks. - P4suta/aozoraGitHubP4suta Rustで作ってますが、配布物はcargoのほかにnpm/pypiでも入手できます Documentation * Playground — try it in

By Sakashita Yasunobu