写代码的时候要注意!(0分)

  • 主题发起人 主题发起人 lover4936
  • 开始时间 开始时间
L

lover4936

Unregistered / Unconfirmed
GUEST, unregistred user!
for i_x := XY_O.X to bitmap_Source.Width-1 do
for i_y := XY_O.Y to xy_TL.Y-1 do
begin
color_Pixels := bitmap_Source.Canvas.Pixels[i_x,i_y];
if color_Pixels > color_High then color_High := bitmap_Source.Canvas.Pixels[i_x, i_y];
end;这个是得到正确结果的代码!


for i_x := XY_O.X to bitmap_Source.Width-1 do
for i_y := XY_O.Y to xy_TL.Y-1 do
begin
if bitmap_Source.Canvas.Pixels[i_x,i_y] > color_High then color_High := bitmap_Source.Canvas.Pixels[i_x, i_y];
end;这个是得到错误结果的代码


从理论上来说这两段代码是一模一样的作用,只是第一段代码中引入了一个变量,而没有将值用来作比较。而第二段用来直接作比较却总是得到bitmap_Source.Canvas.Pixels[i_x,i_y]等 于-1的结果!查了好久才查出来的,这算不算是DELPHI7的一个BUG啊!
 
很奇妙 一定有其他原因
 
这很正常,如果有C编程的基础就不会犯这个错,这是由于参数压栈和出栈顺序造成的错误
 
访问两次 Pixels,很没有效率啊:

for i_x := XY_O.X to bitmap_Source.Width-1 do
for i_y := XY_O.Y to xy_TL.Y-1 do
begin
color_Pixels := bitmap_Source.Canvas.Pixels[i_x,i_y];
if color_Pixels > color_High then color_High := color_Pixels;
end;
 
简单而论,DevHelper是一款为程序员开发的代码自动生成工具。中文名叫“疯狂代码生成器”。

复杂来说,DevHelper是基于多种数据库多种开发语言的模板化代码代码生成器。它提供丰富的标准库以及简单的接口和逻辑结构,其目的是使开发人员更快速地进行项目框架搭建。

支持数据库:Access、Oracle、SQL-Server和MySQL

支持代码类型:Asp.net、Asp、Dephi 和C# winForm

官方网:http://www.DevHelper.cn
 
关注。
能详细说说吗?
 
to guxiaoke
有没有资料可以详细说说吗?
 
超级慢的做法
 
用SCANLINE
+DOUBLEBUFFERED
效率才能真正提高
 
1:不是Delphi的BUG.而是类型强制转换问题.你这里color_Pixels定义为什么类型了?
2:后面几位严重跑题.
 
to kingofhourse
我定义为TCOLOR类型,其实际上是一个整数业型。且Pixels[i_x, i_y]就是一个像素的颜色值啊,也是TCOLOR啊
to 我爱PASCAL
这个SCANLIN的用法怎么用的,我之前试过用这个方法可是总是出错。能不给一个例子啊。
 
TCOLOR比较大小有什么用处,看不明白
SCANLINE的用法一句两句说不清楚。DELPHI的例子也过于简单。
主要是八位和十六位,24位是有区别的。这个东西可不可以
外包?让我来按你的要求写,速度应该提高几个数量级
 
TO 我爱PASCAL
这个小程序我是做起来破解验证码用的了。在网上找了好长一段时间也没有找到相关的控件和DLL只有自已做,我打算分两部分来做一部份是学习端,就是说可以根据图片得到图片的信息规律,半自动的分析。另外一部份就是破解的DLL了,就是说输入一张图片就可以得到这个图片上的验证码!
 
现在已经完成了,学习图片的那一部份了。
 
验证码识别不好搞啊,应属于人工智能方面,有时人眼也会认错。
 
正向产生不难,只要是反向识别
 
反向也不难的啊,反向的话,和杀毒软件的原理一样使用特征码查测啊,哈哈
 
后退
顶部