📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 76行目: | 76行目: | ||
<br> | <br> | ||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
#include <QImage> | #include <QImage> | ||
#include <QSize> | #include <QSize> | ||
#include <QFileInfo> | |||
int main() | |||
{ | { | ||
// 入力ファイルの存在確認 | |||
// | if (!QFileInfo::exists("input.jpg")) return -1; | ||
// 画像の読み込み | |||
QImage image("input.jpg"); | |||
if (image.isNull()) return -1; | |||
// 画像の拡大 | // 画像の拡大 | ||
QImage resizedImage = image.scaled(QSize(800, 600), Qt::KeepAspectRatio, Qt::SmoothTransformation); | |||
// 拡大した画像の保存 | |||
if (!resizedImage.save("output.jpg")) return -1; | |||
return 0; | |||
} | |||
</syntaxhighlight> | |||
<br> | |||
==== 画像の縮小 ==== | |||
以下の例では、QImageクラスを使用して、指定された最大サイズ (例: 400x300ピクセル) に収まるように縮小する。<br> | |||
元の画像が既このサイズ以下の場合は、縮小処理は行わない。<br> | |||
<br> | |||
<syntaxhighlight lang="c++"> | |||
#include <QImage> | |||
#include <QSize> | |||
#include <QFileInfo> | |||
QImage shrinkImage(QImage &image, int maxWidth, int maxHeight) | |||
{ | |||
QSize originalSize = image.size(); | |||
QSize newSize = originalSize; | |||
// アスペクト比を維持しながら、指定された最大サイズに収まるように縮小 | |||
if (originalSize.width() > maxWidth || originalSize.height() > maxHeight) { | |||
newSize.scale(maxWidth, maxHeight, Qt::KeepAspectRatio); | |||
} | } | ||
// 元のサイズより小さい場合のみ縮小を行う | |||
// | // 縮小の必要がない場合は元の画像をそのまま | ||
if (newSize != originalSize) { | |||
{ | return image.scaled(newSize, Qt::KeepAspectRatio, Qt::SmoothTransformation); | ||
return | } | ||
else { | |||
return image; | |||
} | } | ||
} | } | ||
int main() | int main() | ||
{ | { | ||
// 入力ファイルの存在確認 | |||
if (!QFileInfo::exists("input.jpg")) return -1; | |||
if ( | // 画像の読み込み | ||
QImage image("input.jpg"); | |||
if (image.isNull()) return -1; | |||
// 画像の縮小 | |||
QImage resizedImage = shrinkImage(image, 400, 300) | |||
// 縮小した画像の保存 | |||
if (!resizedImage.save("output.jpg")) return -1; | |||
return 0; | return 0; | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br><br> | <br><br> | ||