NET图片加减法的验证码控件
NET图片加减法的验证码控件,、
this.CreateCheckCodeImage(GenerateCheckCode());
private string GenerateCheckCode()
{
int intFirst, intSec, intTemp;
string checkCode = String.Empty;
System.Random random = new Random();
intFirst = random.Next(1, 10);
intSec = random.Next(1, 10);
switch (random.Next(1, 3).ToString())
{
case "2":
if (intFirst < intSec)
{
intTemp = intFirst;
intFirst = intSec;
intSec = intTemp;
}
checkCode = "=" + intFirst + "-" + intSec;
Session["ValidCode"] = intFirst - intSec;
break;
default:
checkCode = "=" + intFirst + "+" + intSec;
Session["ValidCode"] = intFirst + intSec;
break;
}
//Response.Cookies.Add(new HttpCookie("ValidCode",Movie.Common.AES.EncryptAes(checkCode)));
return checkCode;
}
#region 产生波形滤镜效果
private const double PI = 3.1415926535897932384626433832795;
private const double PI2 = 6.283185307179586476925286766559;
private System.Drawing.Bitmap TwistImage(Bitmap srcBmp, bool bXDir, double dMultValue, double dPhase)
{
System.Drawing.Bitmap destBmp = new Bitmap(srcBmp.Width, srcBmp.Height);
// 将位图背景填充为白色
System.Drawing.Graphics graph = System.Drawing.Graphics.FromImage(destBmp);
graph.FillRectangle(new SolidBrush(System.Drawing.Color.White), 0, 0, destBmp.Width, destBmp.Height);
graph.Dispose();
double dBaseAxisLen = bXDir ? (double)destBmp.Height : (double)destBmp.Width;
for (int i = 0; i < destBmp.Width; i++)
{
for (int j = 0; j < destBmp.Height; j++)
{
double dx = 0;
dx = bXDir ? (PI2 * (double)j) / dBaseAxisLen : (PI2 * (double)i) / dBaseAxisLen;
dx += dPhase;
double dy = Math.Sin(dx);
// 取得当前点的颜色
int nOldX = 0, nOldY = 0;
nOldX = bXDir ? i + (int)(dy * dMultValue) : i;
nOldY = bXDir ? j : j + (int)(dy * dMultValue);
System.Drawing.Color color = srcBmp.GetPixel(i, j);
if (nOldX >= 0 && nOldX < destBmp.Width
&& nOldY >= 0 && nOldY < destBmp.Height)
{
destBmp.SetPixel(nOldX, nOldY, color);
}
}
}
return destBmp;
}
#endregion
微信公众平台 网页授权获取用户基本信息(.net)
微信公众平台 网页授权获取用户基本信息
//获取从wxProcess.aspx传递过来的跳转地址reurl
if (Request.QueryString["reurl"] != null && Request.QueryString["reurl"] != "")
{
reurl = Request.QueryString["reurl"].ToString();
}
string code = "";
if (Request.QueryString["code"] != null && Request.QueryString["code"] != "")
{
//获取微信回传的code
code = Request.QueryString["code"].ToString();
OAuth_Token Model = Get_token(code); //获取token
OAuthUser OAuthUser_Model = Get_UserInfo(Model.access_token, Model.openid );
if(OAuthUser_Model.openid!=null && OAuthUser_Model.openid !="") //已获取得openid及其他信息
{
//在页面上输出用户信息
Response.Write("用户OPENID:" + OAuthUser_Model.openid + "<br>用户昵称:" + OAuthUser_Model.nickname + "<br>性别:" + OAuthUser_Model.sex + "<br>所在省:" + OAuthUser_Model.province + "<br>所在市:" + OAuthUser_Model.city + "<br>所在国家:" + OAuthUser_Model.country + "<br>头像地址:" + OAuthUser_Model.headimgurl + "<br>用户特权信息:" + OAuthUser_Model.privilege);
//或跳转到自己的页面,想怎么处理就怎么处理
Response.Redirect(reurl);
}
}
响应式设计css+兼容手机+平板+电脑PC 跨屏响应式布局前端开发CSS框架
响应式css+兼容手机+平板+电脑PC
拼图跨屏响应式布局前端开发CSS框架-综合示例
css兼容手机、平板、PC各种分辨率的网站
css兼容手机、平板、PC各种分辨率的网站,css兼容pc+平板+手机范例
C#-Net判断微信内置浏览器网页
C# 。Net判断微信内置浏览器网页,微信内置浏览器打开的网页
winform+Ui+高仿彗星小助手
小助手Demo】高仿彗星小助手-2014.8.26更新
移动开发html5通讯录上拉加载下拉刷新
移动开发html5通讯录上拉加载下拉刷新
读取excel中的数据并存入SQL_Server数据库.rar
excel 显示Datagriew 读取excel中的数据并存入SQL_Server数据库.rar
App Framework Explained
App FrameWork是基于HTML5重写的jQuery框架,对其进行了简化,更有利于在移动设备上应用,并且速度比较流畅。
App FrameWork框架页面基本都在同一个HTML文档中,在内容区(#content)里面放置多个class为"panel"的p, 这里每个p即为一个页面。当panel设置selected="true"属性后,在应用打开之后默认加载该页面,其他都是隐藏的(display:none)。这些页面之间通过锚链接来跳转,并将目标页面的display设置为"block",同时给需要隐藏的页面一个向左移动的动画,加之panel页面使用绝对定位,宽度高度均铺满content,这样的跳转就达到了native应用页面切换的效果。在页面切换时,另外的动作就是将panel页面中已经定义的title属性中的值显示到导航中,并可以设置属性data-tab的值来选中对应的标签。
winform Excel读取数据到 DataGridView
winform Excel读取数据到 DataGridView
byte[] content;
FileStream fs = File.OpenRead(open.FileName);
content = new byte[fs.Length];
fs.Read(content, 0, content.Length);
fs.Close();
string fileExName = open.FileName;
strPath = fileExName;
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileExName + ";" + "Extended Properties=Excel 8.0;";
OleDbConnection con = new OleDbConnection(strConn);
con.Open();
string[] names = GetExcelSheetNames(con, ShiftCount);
Android+Fragment+TabHost模仿新浪新闻布局界面
Android+Fragment+TabHost模仿新浪新闻布局界面
【Android】时光轴效果.rar
这是安卓开发正在学习的同学不容错过的一个比较好的学习资源。希望能够实践的同学别错过。
Swift仿Twitter的导航条和页面
Swift仿Twitter的导航条和页面,可以自定义页面数量。
//
// PagingNavController.swift
// SwiftPagingNav
//
// Created by Aubrey & Chad on 10/31/14.
// Copyright (c) 2014 Aubrey Johnson / Chad Timmerman. All rights reserved.
//
import UIKit
class PagingNavController: UIViewController, UIScrollViewDelegate {
var scrollView:UIScrollView!
var pageControl:UIPageControl!
var navbarView:UIView!
var navTitleLabel1:UILabel!
var navTitleLabel2:UILabel!
var navTitleLabel3:UILabel!
var view1:UIView!
var view2:UIView!
var view3:UIView!
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.lightGrayColor()
//Creating some shorthand for these values
var wBounds = self.view.bounds.width
var hBounds = self.view.bounds.height
// This houses all of the UIViews / content
scrollView = UIScrollView()
scrollView.backgroundColor = UIColor.clearColor()
scrollView.frame = self.view.frame
scrollView.pagingEnabled = true
scrollView.showsHorizontalScrollIndicator = false
scrollView.delegate = self
scrollView.bounces = false
self.view.addSubview(scrollView)
self.scrollView.contentSize = CGSize(width: self.view.bounds.size.width * 3, height: hBounds/2)
//Putting a subview in the navigationbar to hold the titles and page dots
navbarView = UIView()
self.navigationController?.navigationBar.addSubview(navbarView)
//Paging control is added to a subview in the uinavigationcontroller
pageControl = UIPageControl()
pageControl.frame = CGRect(x: 0, y: 35, width: 0, height: 0)
pageControl.backgroundColor = UIColor.whiteColor()
pageControl.numberOfPages = 3
pageControl.currentPage = 0
pageControl.currentPageIndicatorTintColor = UIColor(red:0.325, green:0.667, blue:0.922, alpha: 1)
pageControl.pageIndicatorTintColor = UIColor.whiteColor()
self.navbarView.addSubview(pageControl)
//Titles for the nav controller (also added to a subview in the uinavigationcontroller)
//Setting size for the titles. FYI changing width will break the paging fades/movement
var titleSize = CGRect(x: 0, y: 8, width: wBounds, height: 20)
navTitleLabel1 = UILabel()
navTitleLabel1.frame = titleSize
navTitleLabel1.text = "Home"
navTitleLabel1.textAlignment = NSTextAlignment.Center
self.navbarView.addSubview(navTitleLabel1)
navTitleLabel2 = UILabel()
navTitleLabel2.frame = titleSize
navTitleLabel2.text = "Discover"
navTitleLabel2.textAlignment = NSTextAlignment.Center
self.navbarView.addSubview(navTitleLabel2)
navTitleLabel3 = UILabel()
navTitleLabel3.frame = titleSize
navTitleLabel3.text = "Activity"
navTitleLabel3.textAlignment = NSTextAlignment.Center
self.navbarView.addSubview(navTitleLabel3)
//Views for the scrolling view
//This is where the content of your views goes (or you can subclass these and add them to ScrollView)
view1 = UIView()
view1.backgroundColor = UIColor(red:0.325, green:0.667, blue:0.922, alpha: 1)
view1.frame = CGRectMake(0, 0, wBounds, hBounds)
self.scrollView.addSubview(view1)
self.scrollView.bringSubviewToFront(view1)
//Notice the x position increases per number of views
view2 = UIView()
view2.backgroundColor = UIColor(red:0.231, green:0.529, blue:0.757, alpha: 1)
view2.frame = CGRectMake(wBounds, 0, wBounds, hBounds)
self.scrollView.addSubview(view2)
self.scrollView.bringSubviewToFront(view2)
//Notice the x position increases yet again (wBounds * 2)
view3 = UIView()
view3.backgroundColor = UIColor(red:0.529, green:0.600, blue:0.647, alpha: 1)
view3.frame = CGRectMake(wBounds * 2, 0, wBounds, hBounds)
self.scrollView.addSubview(view3)
self.scrollView.bringSubviewToFront(view3)
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
navbarView.frame = CGRect(x: 0, y: 0, width: self.view.bounds.width, height: 44)
}
func scrollViewDidScroll(scrollView: UIScrollView) {
var xOffset: CGFloat = scrollView.contentOffset.x
//Setup some math to position the elements where we need them when the view is scrolled
var wBounds = self.view.bounds.width
var hBounds = self.view.bounds.height
var widthOffset = wBounds / 100
var offsetPosition = 0 - xOffset/widthOffset
//Apply the positioning values created above to the frame's position based on user's scroll
navTitleLabel1.frame = CGRectMake(offsetPosition, 8, wBounds, 20)
navTitleLabel2.frame = CGRectMake(offsetPosition + 100, 8, wBounds, 20)
navTitleLabel3.frame = CGRectMake(offsetPosition + 200, 8, wBounds, 20)
//Change the alpha values of the titles as they are scrolled
navTitleLabel1.alpha = 1 - xOffset / wBounds
if (xOffset <= wBounds) {
navTitleLabel2.alpha = xOffset / wBounds
} else {
navTitleLabel2.alpha = 1 - (xOffset - wBounds) / wBounds
}
navTitleLabel3.alpha = (xOffset - wBounds) / wBounds
}
func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
var xOffset: CGFloat = scrollView.contentOffset.x
//Change the pageControl dots depending on the page / offset values
if (xOffset < 1.0) {
pageControl.currentPage = 0
} else if (xOffset < self.view.bounds.width + 1) {
pageControl.currentPage = 1
} else {
pageControl.currentPage = 2
}
}
}
swift编写简单的左右菜单栏
swift编写简单的左右菜单栏
//
// MenuViewController.swift
// Menu
//
// Created by innovane on 14-6-23.
// Copyright (c) 2014年 innovane. All rights reserved.
//
import UIKit
let kICSDrawerControllerLeftViewInitialOffset : CGFloat = 60.0
let kICSDrawerControllerDrawerDepth : CGFloat = 200.0
enum ICSDrawerControllerState : Int {
case MenuControllerStateOpening
case MenuControllerStateClosing
}
class MenuViewController: UIViewController {
//用户点击center
var tapGestureRecognizer :
UITapGestureRecognizer!
// 用户拖动视图
var panGestureRecognizer :
UIPanGestureRecognizer!
// 用户touch的点位置
var panGestureStartLocation : CGPoint!
// 左边控制器
var leftViewController : UIViewController!
//中间控制器
var centerViewController : UIViewController!
var drawerState : ICSDrawerControllerState!
init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
// Custom initialization
}
override func viewDidLoad() {
super.viewDidLoad()
self.drawerState = ICSDrawerControllerState.MenuControllerStateClosing;
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
// 将左边控制器加入导航栏中。
if self.leftViewController != nil{
if (self.leftViewController.view.superview == nil){
self.addChildViewController(self.leftViewController)
self.view.insertSubview(self.leftViewController.view, atIndex:0)
}
}
if self.centerViewController != nil{
if (self.centerViewController.view.superview == nil){
self.addChildViewController(self.centerViewController)
self.view.addSubview(self.centerViewController.view)
}
}
// 添加用户拖动事件。
self.panGestureRecognizer = UIPanGestureRecognizer()
self.panGestureRecognizer.addTarget(self,action:"panGestureRecognized:");
self.centerViewController.view.addGestureRecognizer(self.panGestureRecognizer)
}
// 用户拖动视图调用代理方法。
func panGestureRecognized(panGestureRecognizer:UIPanGestureRecognizer){
// 用户对视图操控的状态。
var state = panGestureRecognizer.state;
var location = panGestureRecognizer.locationInView(self.view)
var velocity = panGestureRecognizer.velocityInView(self.view)
switch (state) {
case UIGestureRecognizerState.Began:
// 记录用户开始点击的位置
self.panGestureStartLocation = location;
println("Began")
break;
case UIGestureRecognizerState.Changed:
println("Changed")
var c = self.centerViewController.view.frame
if (panGestureRecognizer.translationInView(self.centerViewController.view).x > 0){
if (self.drawerState == ICSDrawerControllerState.MenuControllerStateClosing){
c.origin.x = location.x - self.panGestureStartLocation.x;
}
}else if (panGestureRecognizer.translationInView(self.centerViewController.view).x > -kICSDrawerControllerDrawerDepth){
if (self.drawerState == ICSDrawerControllerState.MenuControllerStateOpening){
c.origin.x = panGestureRecognizer.translationInView(self.centerViewController.view).x+kICSDrawerControllerDrawerDepth
}
}
self.centerViewController.view.frame = c ;
break;
case UIGestureRecognizerState.Ended:
var c = self.centerViewController.view.frame
// 表示用户需要展开
if (location.x - self.panGestureStartLocation.x > kICSDrawerControllerLeftViewInitialOffset){
self.didOpen()
}else{
if (c.origin.x < (kICSDrawerControllerDrawerDepth - 40)){
self.didClose()
}else{
self.didOpen()
}
}
break;
default:
break;
}
}
// 移除点击事件,添加拖动事件
func tapGestureRecognized(tapGestureRecognizer : UITapGestureRecognizer){
self.didClose();
}
// 菜单栏打开
func didOpen(){
var c = self.centerViewController.view.frame
c.origin.x = kICSDrawerControllerDrawerDepth;
UIView.animateWithDuration(0.7,delay:0,usingSpringWithDamping:0.5,initialSpringVelocity:1.0,options:UIViewAnimationOptions.AllowUserInteraction,animations:{
self.centerViewController.view.frame = c ;
},completion: { (finished: Bool) -> Void in
})
self.drawerState = ICSDrawerControllerState.MenuControllerStateOpening
//增加点击事件
if (self.tapGestureRecognizer == nil){
self.tapGestureRecognizer = UITapGestureRecognizer()
self.tapGestureRecognizer.addTarget(self,action:"tapGestureRecognized:");
}
self.centerViewController.view.addGestureRecognizer(self.tapGestureRecognizer)
}
// 菜单关闭
func didClose(){
if (self.drawerState == ICSDrawerControllerState.MenuControllerStateOpening){
self.drawerState = ICSDrawerControllerState.MenuControllerStateClosing
self.centerViewController.view.removeGestureRecognizer(self.tapGestureRecognizer)
}
var c = self.centerViewController.view.frame
c.origin.x = 0
UIView.animateWithDuration(0.5,delay:0,usingSpringWithDamping:0.9,initialSpringVelocity:1.0,options:UIViewAnimationOptions.AllowUserInteraction,animations:{
self.centerViewController.view.frame = c ;
},completion: { (finished: Bool) -> Void in
})
}
}
Android仿qq播放器.rar
Android仿qq播放器的代码,经过测试是一个不错的代码
Android抢红包源码
Android抢红包源码。是一个很不错的代码
Android调用webService显示地区
Android调用webService显示地区.能显示全国各个地区。访问WebService的工具类
android手势滑动引导界面
android手势滑动引导界面.一个开机引导画面。类似微信第一次进入。
Android播放器后台运行代码notification
Android播放器后台运行代码notification
[安卓开源]高仿人人网客户端
[安卓开源]高仿人人网客户端.android 代码
vue-element-admin-master.zip
vue-element-admin 是一个后台前端解决方案,它基于 vue 和 element-ui实现。它使用了最新的前端技术栈,内置了 i18 国际化解决方案,动态路由,权限验证,提炼了典型的业务模型,提供了丰富的功能组件,它可以帮助你快速搭建企业级中后台产品原型。相信不管你的需求是什么,本项目都能帮助到你。
vue-jwt-demo-master.zip
vue通过jwt认证。import Vue from 'vue'
import App from './App.vue'
import Login from './component/Login.vue'
import Home from './component/Home.vue'
import VueRouter from 'vue-router'
import VueResource from 'vue-resource'
import auth from './auth/auth'
Vue.use(VueRouter)
Vue.use(VueResource)
//在启动APP时进行校验是否有token
auth.checkAuth()
const routes= [
{
path:'/',redirect:'/login'
},
{
path:'/login',component:Login
},
{
path:'/home',component:Home
}
]
const router = new VueRouter({
routes
})
new Vue({
router,
render: h => h(App)
}).$mount('#app')
vue-wechat-login-master.zip
vue微信授权登录,new Vue({
router,
store,
render: h => h(App)
}).$mount('#app')
js显示屏特效火车站高铁站列车时刻表切换特效.rar
显示屏特效火车站高铁站列车时刻表切换特效, 模拟数据库读取列车时刻表数据。然后随机在页面显示滚动结果
HTML和CSS3制作的可编辑的微软Word样式文档
HTML和CSS3制作的可编辑的微软Word样式文档。该特效提供一组预定义的样式,用于在WEB页面中生成各种尺寸的Word样式的文档效果。它提供的样式包括:
sheets-of-paper-a4.css:A4纸(21cm × 29.7cm)
sheets-of-paper-a3.css:A3纸(29.7cm × 42cm)
sheets-of-paper-usletter.css:US letter(21.6cm × 27.9cm)
sheets-of-paper-uslegal.css:US legal(21.6cm × 35.6cm)
sheets-of-paper-ustabloid.css:US tabloid(27.9cm × 43.2cm)
百度地图聚合显示.zip
百度地图地区聚合显示房产数据。数据量较少,所以不是每一个区下面都有数据,只模拟造了少量数据,并且能显示所有行政边界。
c# 文字转为拼音或者拼音首字母类TChinese
string result = TChinese.MakeSpellCode(strChinese, TChineseOptions.FirstLetterOnly);
string result = TChinese.MakeSpellCode(strChinese, TChineseOptions.EnableUnicodeLetter);
dropload 下拉刷新 上拉加载 jquery 控件
domUp : { // 上方DOM
domClass : 'dropload-up',
domRefresh : '<div class="dropload-refresh">↓下拉刷新</div>',
domUpdate : '<div class="dropload-update">↑释放更新</div>',
domLoad : '<div class="dropload-load"><span class="loading"></span>加载中...</div>'
},
domDown : { // 下方DOM
domClass : 'dropload-down',
domRefresh : '<div class="dropload-refresh">↑上拉加载更多</div>',
domLoad : '<div class="dropload-load"><span class="loading"></span>加载中...</div>',
domNoData : '<div class="dropload-noData">暂无数据</div>'
},
快速排序Quicksort演示
日本程序员norahiko,写了一个排序算法的动画演示,非常有趣。排序算法(Sorting algorithm)是计算机科学最古老、最基本的课题之一。要想成为合格的程序员,就必须理解和掌握各种排序算法。
目前,最常见的排序算法大概有七八种,其中"快速排序"(Quicksort)使用得最广泛,速度也较快。它是图灵奖得主C. A. R. Hoare(1934--)于1960时提出来的
fullcalendar-1.6.4-feifei修改版
fullcalendar-1.6.4-feifei修改版
weui 时间控件含全天 上午 下午 选择
weui 时间控件含全天 上午 下午 选择
高仿微信企业号 基础应用审批样式weui
高仿微信企业号 基础应用审批样式weui
winform DockPanel框架
DockPanel Suite是一个国外 winform框架开源项目
微信小程序 购物车UI
医疗服务顾客满意度测评管理
原价45元
¥41.00
net-jquery-cookie 购物车 以及Cookie 存储示例
function storecookie(value){
$.cookie('name',value,{expires:1});
}
function showcookie(name){
var cookieValue = $.cookie(name);
$("#tvalue").val(cookieValue);
}
function deletecookie(name){
$.cookie(name,null);
}
function setDatecookie(date){
$.cookie('name','admin',{expires:date});
}
NET DotNetZip 多文件压缩打包组件
在对多文件打包中用到了 DotNetZip 的方法来实现对多文件压缩打包,下载该文件,然后引用即可。
PHP微信支付接口开发代码
PHP微信支付接口开发代码
<script type="text/javascript">
//调用微信JS api 支付
function jsApiCall()
{
WeixinJSBridge.invoke(
"getBrandWCPayRequest",
'.$jsApiParameters.',
function(res){
//alert(res.err_msg);
//WeixinJSBridge.log(res.err_msg);
location.href = "http://www.xxx.com/wap/tmpl/member/order_list.html";
}
);
}
function callpay()
{
if (typeof WeixinJSBridge == "undefined"){
if( document.addEventListener ){
document.addEventListener("WeixinJSBridgeReady", jsApiCall, false);
}else if (document.attachEvent){
document.attachEvent("WeixinJSBridgeReady", jsApiCall);
document.attachEvent("onWeixinJSBridgeReady", jsApiCall);
}
}else{
jsApiCall();
}
}
callpay();
</script>
iOS 新闻系统源代码
iOS 新闻系统源代码
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"city"];
if (cell == nil) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"city"];
}
CityItems *item = [_dataArray objectAtIndex:indexPath.row];
cell.textLabel.text = item.name;
cell.textLabel.textColor = [UIColor whiteColor];
return cell;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
if ([self.delegate respondsToSelector:@selector(didSelectRow:andCityZip:)]){
CityItems *item = [_dataArray objectAtIndex:indexPath.row];
[self.delegate didSelectRow:self andCityZip:item.zip];
}
}
2004-2012网络工程师试题
2004-2012网络工程师试题