TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
djs project
NA
1
0
mutiple images
Jan 16 2010 2:22 PM
i have the code for selecting mutiple images and rotating single image.
for selecting multiple images
"rivate void addphotos_Click(object sender, EventArgs e)
{
opend1.Filter = "Image Files(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All files (*.*)|*.*";
opend1.Multiselect = true;
imageList.Images.Clear();
listView1.Items.Clear();
if (opend1.ShowDialog() == DialogResult.OK)
{
listView1.View = View.LargeIcon;
imageList.ImageSize = new Size(50,50);
for (int c = 0; c < opend1.FileNames.Length; c++)
{
Image i = Image.FromFile(opend1.FileNames[c].ToString());
Image img = i.GetThumbnailImage(256,256, null, new IntPtr());
imageList.Images.Add(img);
}
listView1.LargeImageList = imageList;
for (int j = 0; j < imageList.Images.Count; j++)
{
ListViewItem lstItem = new ListViewItem();
lstItem.ImageIndex = j;
listView1.Items.Add(lstItem);
}
}
code for rotating single image
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Text;
using System.Windows.Forms;
namespace ImageRotation
{
public partial class Form1 : Form
{
private Image loadedImage;
public Form1()
{
InitializeComponent();
}
private Image RotateImage(Image inputImg, double degreeAngle)
{
//Corners of the image
PointF[] rotationPoints = { new PointF(0, 0),
new PointF(inputImg.Width, 0),
new PointF(0, inputImg.Height),
new PointF(inputImg.Width, inputImg.Height)};
//Rotate the corners
PointMath.RotatePoints(rotationPoints, new PointF(inputImg.Width / 2.0f, inputImg.Height / 2.0f), degreeAngle);
//Get the new bounds given from the rotation of the corners
//(avoid clipping of the image)
Rectangle bounds = PointMath.GetBounds(rotationPoints);
//An empy bitmap to draw the rotated image
Bitmap rotatedBitmap = new Bitmap(bounds.Width, bounds.Height);
using (Graphics g = Graphics.FromImage(rotatedBitmap))
{
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
//Transformation matrix
Matrix m = new Matrix();
m.RotateAt((float)degreeAngle, new PointF(inputImg.Width / 2.0f, inputImg.Height / 2.0f));
m.Translate(-bounds.Left, -bounds.Top, MatrixOrder.Append); //shift to compensate for the rotation
g.Transform = m;
g.DrawImage(inputImg, 0, 0);
}
return (Image)rotatedBitmap;
}
private void trackBar1_Scroll(object sender, EventArgs e)
{
if (loadedImage != null)
pictureBox1.Image = RotateImage(loadedImage, (double)tRotation.Value);
pictureBox1.Refresh();
}
private void btnLoad_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
try
{
loadedImage = Image.FromFile(openFileDialog1.FileName);
pictureBox1.Image = loadedImage;
//Reset rotation value
tRotation.Value = 0;
}
catch (Exception)
{
MessageBox.Show("Image invalid.");
}
}
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
System.Diagnostics.Process.Start("http://www.vcskicks.com/");
}
}
public static class PointMath
{
private static double DegreeToRadian(double angle)
{
return Math.PI * angle / 180.0;
}
public static PointF RotatePoint(PointF pnt, double degreeAngle)
{
return RotatePoint(pnt, new PointF(0, 0), degreeAngle);
}
public static PointF RotatePoint(PointF pnt, PointF origin, double degreeAngle)
{
double radAngle = DegreeToRadian(degreeAngle);
PointF newPoint = new PointF();
double deltaX = pnt.X - origin.X;
double deltaY = pnt.Y - origin.Y;
newPoint.X = (float)(origin.X + (Math.Cos(radAngle) * deltaX - Math.Sin(radAngle) * deltaY));
newPoint.Y = (float)(origin.Y + (Math.Sin(radAngle) * deltaX + Math.Cos(radAngle) * deltaY));
return newPoint;
}
public static void RotatePoints(PointF[] pnts, double degreeAngle)
{
for (int i = 0; i < pnts.Length; i++)
{
pnts[i] = RotatePoint(pnts[i], degreeAngle);
}
}
public static void RotatePoints(PointF[] pnts, PointF origin, double degreeAngle)
{
for (int i = 0; i < pnts.Length; i++)
{
pnts[i] = RotatePoint(pnts[i], origin, degreeAngle);
}
}
public static Rectangle GetBounds(PointF[] pnts)
{
RectangleF boundsF = GetBoundsF(pnts);
return new Rectangle((int)Math.Round(boundsF.Left),
(int)Math.Round(boundsF.Top),
(int)Math.Round(boundsF.Width),
(int)Math.Round(boundsF.Height));
}
public static RectangleF GetBoundsF(PointF[] pnts)
{
float left = pnts[0].X;
float right = pnts[0].X;
float top = pnts[0].Y;
float bottom = pnts[0].Y;
for (int i = 1; i < pnts.Length; i++)
{
if (pnts[i].X < left)
left = pnts[i].X;
else if (pnts[i].X > right)
right = pnts[i].X;
if (pnts[i].Y < top)
top = pnts[i].Y;
else if (pnts[i].Y > bottom)
bottom = pnts[i].Y;
}
return new RectangleF(left,
top,
(float)Math.Abs(right - left),
(float)Math.Abs(bottom - top));
}
}
}
can someone tell me how can i use rotation code for mutiple images.Thanks in advance
Reply
Answers (
1
)
Video Display(in media palyer) in a Asp.net page from the link save in Database
Looping through a checkboxlist. Table needs fixing.