Resim boyutlandırma ve resimleri yeniden isimlendirmek içn aşağıdaki windows form uyguması kodunu kullanabilirsiniz.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using System.Threading.Tasks;
namespace resimboyutlandır
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private async void button1_Click(object sender, EventArgs e)
{
using (FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog())
{
folderBrowserDialog.Description = "Lütfen kaynak klasörleri seçin.";
folderBrowserDialog.ShowNewFolderButton = false;
folderBrowserDialog.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer);
folderBrowserDialog.RootFolder = Environment.SpecialFolder.Desktop;
folderBrowserDialog.SelectedPath = @"C:\";
if (folderBrowserDialog.ShowDialog() == DialogResult.OK)
{
double yukseklikcm = Convert.ToDouble(textBox1.Text);
double genislikcm = Convert.ToDouble(textBox2.Text);
double dpi = Convert.ToDouble(textBox3.Text);
double genislikpixel = CmToPixel(genislikcm, dpi);
double yukseklikpixel = CmToPixel(yukseklikcm, dpi);
// Hedef klasörü seç
using (FolderBrowserDialog hedefFolderBrowserDialog = new FolderBrowserDialog())
{
hedefFolderBrowserDialog.Description = "Lütfen hedef klasörü seçin.";
hedefFolderBrowserDialog.ShowNewFolderButton = true;
hedefFolderBrowserDialog.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer);
hedefFolderBrowserDialog.RootFolder = Environment.SpecialFolder.Desktop;
if (hedefFolderBrowserDialog.ShowDialog() == DialogResult.OK)
{
string hedefKlasor = hedefFolderBrowserDialog.SelectedPath;
// Her bir klasördeki resim dosyalarını al ve işle
await Task.Run(() => BoyutlandirVeKaydetTumResimler(folderBrowserDialog.SelectedPath, genislikpixel, yukseklikpixel, hedefKlasor));
MessageBox.Show("Toplu boyutlandırma işlemi tamamlandı.");
}
}
}
}
}
void BoyutlandirVeKaydetTumResimler(string kaynakKlasor, double genislikCm, double yukseklikCm, string hedefKlasor)
{
string[] resimDosyalari = Directory.GetFiles(kaynakKlasor, "*.jpg", SearchOption.AllDirectories)
.Concat(Directory.GetFiles(kaynakKlasor, "*.jpeg", SearchOption.AllDirectories))
.Concat(Directory.GetFiles(kaynakKlasor, "*.png", SearchOption.AllDirectories))
.Concat(Directory.GetFiles(kaynakKlasor, "*.gif", SearchOption.AllDirectories))
.Concat(Directory.GetFiles(kaynakKlasor, "*.bmp", SearchOption.AllDirectories))
.ToArray();
int dosyaSayac = 1;
foreach (string dosyaYolu in resimDosyalari)
{
BoyutlandirVeKaydet(dosyaYolu, genislikCm, yukseklikCm, hedefKlasor, ref dosyaSayac);
// ProgressBar'ı güncelle
Invoke(new Action(() => label4.Text = "Donustürülen Resim: " + dosyaSayac.ToString()));
dosyaSayac++;
}
}
void BoyutlandirVeKaydet(string dosyaYolu, double genislikCm, double yukseklikCm, string hedefKlasor, ref int dosyaSayac)
{
// Resmi yükle
Image resim = Image.FromFile(dosyaYolu);
// Oranları hesapla
double oranGenislik = genislikCm / resim.Width;
double oranYukseklik = yukseklikCm / resim.Height;
// Oranları kullanarak yeni boyutları hesapla
int yeniGenislik = (int)(resim.Width * oranGenislik);
int yeniYukseklik = (int)(resim.Height * oranYukseklik);
// Yeni boyutlu resmi oluştur
Image yeniResim = new Bitmap(resim, yeniGenislik, yeniYukseklik);
// Orijinal resmi serbest bırak
resim.Dispose();
// Yeni dosya adını oluştur
string yeniDosyaAdi = textBox4.Text+ $"{dosyaSayac:D4}";
// Yeni resmi hedef klasöre ve yeni dosya adıyla kaydet
string hedefDosyaYolu = Path.Combine(hedefKlasor, $"{yeniDosyaAdi}.jpg");
yeniResim.Save(hedefDosyaYolu, System.Drawing.Imaging.ImageFormat.Jpeg);
}
static double PixelToCm(double pixel, double dpi)
{
return pixel / dpi * 2.54;
}
static double CmToPixel(double cm, double dpi)
{
return cm * dpi / 2.54;
}
private void Form1_Load(object sender, EventArgs e)
{
label1.Text = "Yükseklik cm";
label2.Text = "Genişlik cm";
label3.Text = "DPİ";
label4.Text = "...";
label5.Text = "Resim İsmi:";
textBox1.Text = "23,5";
textBox2.Text = "16";
textBox3.Text = "300";
textBox4.Text = "samsun-";
}
}
}