| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2270 人关注过本帖
标题:ps图片缩小变啦?
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用有容就大在2013-4-24 11:29:59的发言:

搞的这么专业。。。

如此简陋的东西你这样说叫我情何以堪!

授人以渔,不授人以鱼。
2013-04-24 11:34
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 








.
2013-04-24 11:42
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
.NET4.5下载地址:http://www.

授人以渔,不授人以鱼。
2013-04-24 11:42
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
MD,不要界面,改成控制台程序。

授人以渔,不授人以鱼。
2013-04-24 12:36
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用TonyDeng在2013-4-24 11:34:46的发言:


如此简陋的东西你这样说叫我情何以堪!

梅尚程荀
马谭杨奚







                                                       
2013-04-24 12:38
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
控制台的好用:
party_pics.zip (5.58 KB)

用法:解压到一个文件夹中,在里面创建一个子目录Source,把需要处理的图片放入去,然后执行party_pics 400 400即可。

为了照顾XP用户,已经改为使用.NET4,XP是可以安装.NET4的,但不能安装.NET4.5,下载地址在上面给的链接中找。

授人以渔,不授人以鱼。
2013-04-24 13:14
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
程序代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using  myTools;

namespace party_pics
{
    class Program
    {
        static void Main(String[] args)
        {
            Int32 width, height;
            if ((args.Length == 2) && Int32.TryParse(args[0], out width) && Int32.TryParse(args[1], out height) && (width > 0) && (height > 0))
            {
                Process(width, height);
            }
        }

        static void Process(Int32 width, Int32 height)
        {
            if (Directory.Exists("Target") || (Directory.CreateDirectory("Target") != null))
            {
                String[] files = Directory.GetFiles("Source");
                foreach (String filename in files)
                {
                    String new_filename = filename.Substring(filename.LastIndexOf(@"\") + 1);
                    new_filename = new_filename.Substring(0, new_filename.LastIndexOf(".")) + ".PNG";
                    Console.Write("{0}...", new_filename);
                    Console.WriteLine("{0}", (mytools.Convert_Image(filename, @"Target\" + new_filename, width, height) ? "success" : "failure"));
                }
            }
            else
            {
                Console.WriteLine("Subdirectory \"Target\" create failure!");
            }
        }
    }
}


程序代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Drawing;

namespace myTools
{
    public static partial class mytools
    {
        //------------------------------------------------------------
        // 功能:将图像转换为指定尺寸的图像,并在目标区域内居中
        // 参数:sourceImageFileName -- 源文件名
        //       targetImageFileName -- 目标文件名
        //                     width -- 目标区域像素宽度
        //                    height -- 目标区域像素高度
        // 备注:转换图像为96DPI、白色背景、24位色的PNG格式
        //------------------------------------------------------------
        public static Boolean Convert_Image(String sourceImageFileName, String targetImageFileName, Int32 width, Int32 height)
        {
            Boolean success = false;

            if (sourceImageFileName.ToUpper().EndsWith(".JPG") || sourceImageFileName.ToUpper().EndsWith(".PNG"))
            {
                Int32 top = 0;      // 新图像在目标区域中的顶坐标
                Int32 left = 0;     // 新图像在目标区域中的左坐标

                Image sourceImage = Image.FromFile(sourceImageFileName);
                Bitmap newBitmap = new Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
                newBitmap.SetResolution(96, 96);
                if (sourceImage.Width > sourceImage.Height)
                {
                    height = sourceImage.Height * width / sourceImage.Width;
                    top = (newBitmap.Height - height) / 2;
                }
                else
                {
                    width = sourceImage.Width * height / sourceImage.Height;
                    left = (newBitmap.Width - width) / 2;
                }
                Rectangle rect = new Rectangle(left, top, width, height);

                Graphics theGraphics = Graphics.FromImage(newBitmap);
                theGraphics.Clear(System.Drawing.Color.White);
                theGraphics.DrawImage(sourceImage, rect);
                newBitmap.Save(targetImageFileName, System.Drawing.Imaging.ImageFormat.Png);

                sourceImage.Dispose();
                newBitmap.Dispose();
                theGraphics.Dispose();

                success = true;
            }

            return success;
        }
    }
}
收到的鲜花
  • party6202013-04-25 08:37 送鲜花  30朵   附言:太有才啦!!!

授人以渔,不授人以鱼。
2013-04-24 13:19
快速回复:ps图片缩小变啦?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.132092 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved