Loading...

snow web site logo

お問合わせ
About us
Blog

Perlについて
老舗の言語のあれこれ

先月 last month  2021 年 08 月  来月 next month
日 sun月 mon火 tue 水 wed木 thu金 fri土 sat
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 2021
22 23 24 25 26 27 28
29 30 31



Date:2021-08-20 04:55 Editer:snow

画像のサイズを取得して後から置換する方法

スマホ版Snow Web Site Mobileを制作する時、画像の表示でかなり悩みました。
まず、画像を、PC版のものを流用するつもりでしたので、画像のパスでちょっと悩み、また画像の表示が、スマホ版には大きすぎるので、どうしようかと思っておりました。

まず、正規表現で置き換えを行ったのですが、上手くいく画像と上手くいかない画像が出てきて困りました。画像のサイズ取得に関しては、Image::Magick(PerlMagick)を使用しました。


my $contents0 = qq|公式サイト<center>center>Windows用を選んで、この中で「program_all.exe」を選びます。先頭の「program_del.exe」は、選びませんでした。 dellとついているのですが、これは、これは選びません。

ダウンロードして、インストールします。いくつか、 next を選ぶと、こんな画面が表示されます。<center>center>|;


上記が、テストデータです。
画像タグが2つ入っています。


my $contents1 = "";
my $contents2 = "";
my $contents3 = "";
#何度でも繰り返す
while (1) {
if ( $contents0 =~ m/^(.+?(/center>))/ ) {
$w = 320;
$contents1 = $1;
$contents0 = $’; # 見つけた繰り返しシーケンスのうしろが次の対象
$contents3 = $’; # 見つけた繰り返しシーケンスのうしろが次の対象
$contents1 =~ s///;
$contents2 .= $contents1;
$contents1 = "";
}else{
$contents2 .= $contents3;
last; # もう目指すパターンはないので while (1) から脱出
}
}
print "成形後$contents2";


while文で、上記の場合、2回ループしています。一回目は、始めのまで$1に格納しています。そして、s///の置換演算子で、サイズを挿入しています。2回目のループに入るために、$’に残りを格納してあるのを、最初のif文で引っ掛けるために、$contents0に格納します。
そして、最後にelseで残りのテストデータを格納しています。

Print Twitter short URL いいね:154

月間アーカイブ
 ▼2021 年

 ▼2022 年

 ▼2023 年

 ▼2024 年

 ▼2025 年

↓
PR このサイトには広告が掲載されています。